Docs 菜单
Docs 主页
/ / /
C 驱动程序
/ /

如何:从源安装 libbson/libmongoc

在此页面上

  • 选择前缀
  • 使用非特权用户本地安装前缀(推荐)
  • 选择系统范围的安装前缀
  • 使用 CMake 安装

重要

本页面假设您可以成功配置和构建要安装的组件, 从源代码构建 C 驱动程序库教程页面对此进行了详细说明和解释。虽然该教程逐步介绍了如何构建源代码和进行最小化安装,但本页面将提供更深入的指导,说明从此类源代码构建安装 mongo-c-driver库的细微差别和可用选项。

mongo-c-driver 使用 CMake 生成安装规则,并安装各种感兴趣的工件。为了与下游程序集成, 配置文件会将 和 pkg-config 文件会特别令人感兴趣。

如果您打算通过 CMake 或 pkg-config 导入libbsonlibmongoc ,了解相应工具如何搜索包元数据会很有帮助。

CMake 根据一组前缀构建一组搜索路径,这些前缀会从环境和配置时 CMake 设置中读取。

特别是, $PATH环境变量将用于构建系统的标准前缀。对于 $PATH 中的每个目录D

  1. 如果D的最后一个路径组件是“ bin ”或“ sbin ”,则D将替换为D的父路径。

  2. D 添加为Atlas Search前缀。

这会导致 $PATH 上的常见 Unix 特定目录(例如 /usr/bin/usr/local/bin)最终将分别导致 CMake 以 /usr/usr/local 为前缀进行Atlas Search 。 如果 $PATH 上有 $HOME/.local/bin 目录,则 $HOME/.local 目录也会添加到Atlas Search路径中。 对于许多 Unix Shell 来说,在 {9 $HOME/.local/bin上使用$PATH是一种越来越常见的模式,如果您打算在安装中使用“使用非特权用户本地安装前缀(推荐) ”,则建议使用这种模式。

此外, CMAKE_PREFIX_PATH环境变量将用于构造路径列表。默认情况下,未定义此环境变量。

在 Windows上,目录%ProgramW6432%%ProgramFiles%%ProgramFiles(x86)%%SystemDrive%\\Program Files%SystemDrive%\\Program Files (x86)也将被添加。 (这些来自CMAKE_SYSTEM_PREFIX_PATH CMake 变量,该变量是在 CMake 平台检测期间定义的。)

提示

另请参阅:

有关包查找的详细信息,请参阅 CMake 的 搜索过程 部分了解完整详情。

pkg-config命令行工具默认在各个目录中查找.pc文件,这些目录相对于pkg-config工具本身的路径。要获取pkg-config默认搜索的目录列表,请使用以下命令:

询问 pkg-config 默认情况下会搜索哪些目录
$ pkg-config "pkg-config" --variable="pc_path"

可以使用$PKG_CONFIG_PATH环境变量指定其他目录。将在默认pkg-config路径之前搜索此类路径。

在 Windows 上,注册表项HKCU\Software\pkgconfig\PKG_CONFIG_PATHHKLM\Software\pkgconfig\PKG_CONFIG_PATH可用于为pkg-config指定其他搜索目录。建议将目录添加到HKCU\…键,以保留特定于用户的搜索目录。

提示

另请参阅:

manpkg-config如果您的系统上安装了 和 ,则man 1 pkg-config 中详细介绍了查找过程。您还可以在网络上的许多手册页存档中找到此文档,例如 linux.die.net 上的 pkg-config。

我们将用户本地安装的目录称为$PREFIX 。此目录的路径选择有些随意,但有一些建议值得考虑。 $PREFIX目录是您在配置下游项目时为 CMake 或pkg-config提供的路径。

建议您在用户帐户特定的非特权文件系统位置安装自定义的mongo-c-driver库。

与其他类 Unix 系统不同,macOS 没有用于用户本地包安装的特定目录,可以由个人自行创建此类目录。

要使用的目录的选择本质上是任意的。对于每用户安装,唯一的要求是希望执行和使用安装的用户可以写入该目录。

为了与其他 Unix 变体保持一致,本指南建议使用$HOME/.local 作为用户本地安装前缀。这基于 XDG 基本目录 指定的行为 规范和 systemd 文件层次结构 在 Linux 和各种 BSD 上很常见,但它不是其他平台上的标准。

在 Linux 和 BSD 系统上,通常使用$HOME/.local 目录作为用户特定软件包安装的前缀。此约定源自 XDG 基本目录 规范和 systemd 文件层次结构

由于其广泛使用并得到许多其他工具的支持,本指南建议使用$HOME/.local作为用户本地安装前缀。

在 Windows 上, %UserProfile%\\AppData\\Local中有一个专门用于存放用户本地文件的目录。要引用它,请展开%LocalAppData%环境变量。 (请勿使用%AppData%环境变量!)

尽管该目录存在,但它没有适合我们目的的规定结构。用户本地安装前缀的选择是任意的。本指南强烈建议不要直接在用户的主目录中创建其他文件和目录。

考虑使用%LocalAppData%\\MongoDB作为手动安装组件的前缀。

如果您希望将mongo-c-driver库安装在所有用户都可见的目录中,有一些标准选项。

使用安装$PREFIX/usr/local/是对所有 Unix 平台的主要建议,但这在某些不知名的系统上可能会有所不同。

警告

请勿使用/usr// (根目录)作为前缀:这些目录旨在由系统精心管理。 /usr/local目录是特意保留用于非托管软件安装的。

或者,考虑安装到可以轻松删除或重新定位的不同目录,例如/opt/mongo-c-driver/ 。这很容易识别,并且在没有明确选择的情况下不会与系统上的其他软件交互。

警告

强烈建议不要在 Windows 系统范围内手动安装软件。最好使用每用户非特权安装前缀。

如果希望在 Windows 上执行系统范围的安装,最好使用%ProgramData%的命名子目录,因为该子目录不需要管理权限即可读写。 (例如%ProgramData%\\mongo-c-driver

成功配置和构建库并选择合适的$PREFIX后,您可以安装构建的结果。 令名称$BUILD指代您执行构建的目录(这是包含CMakeCache.txt以及许多其他文件的目录)。

在命令行中,可以使用cmake --install subcommand选项通过 CMake 运行对所选$PREFIX的安装:

$ cmake --install "$BUILD" --prefix "$PREFIX"

重要

如果您在使用多配置生成器(例如 Visual Studio、Xcode)时配置了库,则还需要传递--config命令行选项,并且必须传递要安装的构建配置的值。对于用于安装的任何选定的--config值,您之前还必须使用相同的--config值在该目录中执行过cmake --build

注意

如果您选择使用系统范围的安装$PREFIX ,则您可能需要以特权用户身份执行安装。如果无法不想以特权用户身份运行安装,则应使用每用户安装前缀。

提示

CMAKE_INSTALL_PREFIX如果将--prefix 命令行选项与 一起使用,则无需设置cmake --install--prefix选项将覆盖配置项目时由CMAKE_INSTALL_PREFIX指定的所有内容。

后退

操作指南