Docs Menu
Docs Home
/ /

Cómo: Instalar libbson/libmongoc desde el código fuente

Importante

Esta página asume que puede configurar y crear con éxito los componentes que desea instalar, lo cual se detalla y explica en la Página del tutorial "Creación de lasbibliotecas de controladores de C desde el código fuente". Mientras que este tutorial explica cómo crear el código fuente y cómo hacer una instalación mínima, esta página ofrece una guía más detallada sobre los matices y las opciones disponibles para instalar... mongo-c-driver bibliotecas de dicha compilación desde el código fuente.

mongo-c-driver Utiliza CMake para generar sus reglas de instalación e instala diversos artefactos de interés. Para la integración con programas posteriores, el Los paquetes de archivos de configuración y los archivos pkg-config serían de particular interés.

Si desea importar libbson o libmongoc a través de CMake o pkg-config, puede ser útil saber cómo la herramienta respectiva busca metadatos del paquete.

CMake compila un conjunto de rutas de búsqueda basadas en un conjunto de prefijos, los cuales se leen tanto del entorno como de los ajustes de CMake configurados en tiempo de configuración.

En particular, la variable de entorno $PATH se utilizará para construir los prefijos estándar del sistema. Para cada directorio D en $PATH:

  1. Si el componente de ruta final de D es "bin" o "sbin", D se reemplaza con la ruta principal de D.

  2. D se agrega como prefijo de búsqueda.

Esto hace que los directorios comunes específicos de Unix $PATH en, como /usr/bin y, hagan /usr/local/bin que CMake /usr /usr/local busque en los prefijos y, respectivamente. Si tiene el directorio $HOME/.local/bin en su,$PATH el $HOME/.local directorio también se añadirá a la ruta de búsqueda. Tener $HOME/.local/bin en $PATH es un patrón cada vez más común en muchos shells de Unix y se recomienda si desea usar un prefijo de instalación local de usuario sin privilegios (recomendado) para su instalación.

Además, se usará CMAKE_PREFIX_PATH la variable de entorno para construir una lista de rutas. Por defecto, esta variable de entorno no está definida.

En Windows, también se agregaránlos directorios,,,%ProgramW6432% %ProgramFiles%%ProgramFiles(x86)%%SystemDrive%\\Program Filesy. (Estos provienen de la %SystemDrive%\\Program Files (x86) CMAKE_SYSTEM_PREFIX_PATH variable de CMake, que se define durante la detección de plataforma de CMake).

Tip

Para obtener información detallada sobre la búsqueda de paquetes, consulte la sección de procedimiento de búsqueda de CMake para obtener detalles completos.

La herramienta de línea de comandos pkg-config busca archivos .pc en varios directorios, por defecto, en relación con la ruta de la propia herramienta pkg-config. Para obtener la lista de directorios que pkg-config buscará por defecto, utilice el siguiente comando:

Pregúntele a pkg-config qué directorios buscará de manera predeterminada
$ pkg-config "pkg-config" --variable="pc_path"

Se pueden especificar directorios adicionales mediante la $PKG_CONFIG_PATH variable de entorno. Estas rutas se buscarán antes que las pkg-config rutas predeterminadas.

En Windows, las claves de registro HKCU\Software\pkgconfig\PKG_CONFIG_PATH y HKLM\Software\pkgconfig\PKG_CONFIG_PATH permiten especificar directorios de búsqueda adicionales para. Se recomienda pkg-config agregar directorios a la HKCU\… clave para conservar los directorios de búsqueda específicos del usuario.

Tip

Si man tiene y pkg-config instalados en su sistema, los procedimientos de búsqueda se detallan man 1 pkg-config en. Esta documentación también se puede encontrar en muchos archivos de páginas de manual en la web, como pkg-config en linux.die.net.

Llamaremos $PREFIX al directorio de la instalación local del usuario. Seleccionar la ruta a este directorio es algo arbitrario, pero hay algunas recomendaciones a considerar. El directorio $PREFIX es la ruta que se le proporcionará a CMake o pkg-config al configurar un proyecto posterior.

Se recomienda que instale bibliotecas mongo-c-driver personalizadas en una ubicación del sistema de archivos sin privilegios particular para la cuenta de usuario.

A diferencia de otros sistemas tipo Unix, macOS no tiene un directorio específico para las instalaciones de paquetes locales del usuario, y es responsabilidad del usuario crear dichos directorios por sí mismo.

La elección del directorio a utilizar es prácticamente arbitraria. Para instalaciones por usuario, el único requisito es que el directorio tenga permisos de escritura para el usuario que desee realizar y utilizar la instalación.

Para mantener la uniformidad con otras variantes de Unix, esta guía recomienda usar $HOME/.local como prefijo de instalación local del usuario. Esto se basa en el comportamiento especificado por las especificaciones del directorio base de XDG y la jerarquía de archivos systemd, común en Linux y varios BSD, pero no es un estándar en otras plataformas.

En sistemas Linux y BSD, es común usar el $HOME/.local directorio como prefijo para la instalación de paquetes específicos del usuario. Esta convención tiene su origen en la especificación del directorio base de XDG y la jerarquía de archivos de systemd.

Debido a su uso generalizado y soporte en muchas otras herramientas, esta guía recomienda utilizar $HOME/.local como prefijo de instalación local del usuario.

En Windows, existe un directorio dedicado para los archivos locales del usuario %UserProfile%\\AppData\\Local en. Para acceder a él, expanda la %LocalAppData% variable de entorno. (¡No use la %AppData% variable de entorno!)

A pesar de la existencia de este directorio, no tiene una estructura predefinida que se ajuste a nuestros propósitos. La elección del prefijo de instalación local del usuario es arbitraria. Esta guía desaconseja encarecidamente la creación de archivos y directorios adicionales directamente en el directorio personal del usuario.

Considere utilizar %LocalAppData%\\MongoDB como prefijo para los componentes instalados manualmente.

Si desea instalar las bibliotecas mongo-c-driver en un directorio que sea visible para todos los usuarios, existen algunas opciones estándar.

Usar una instalación $PREFIX de /usr/local/ es la recomendación primaria para todas las plataformas Unix, aunque esto puede variar en algunos sistemas poco comunes.

Advertencia

NO utilice /usr/ ni / (el directorio raíz) como prefijo: Estos directorios están diseñados para ser administrados cuidadosamente por el sistema. El /usr/local directorio está reservado intencionalmente para la instalación de software no administrado.

Como alternativa, considere instalarlo en un directorio distinto que pueda eliminarse o reubicarse fácilmente, como /opt/mongo-c-driver/. Este será fácilmente identificable y no interactuará con otro software del sistema sin autorización explícita.

Advertencia

Se desaconseja encarecidamente instalar manualmente software en todo el sistema Windows. Es preferible usar un prefijo de instalación sin privilegios para cada usuario.

Si desea realizar una instalación en todo el sistema en Windows, prefiera utilizar un subdirectorio con nombre de %ProgramData%, que no requiere privilegios administrativos para leer y escribir. (por ejemplo, %ProgramData%\\mongo-c-driver)

Después de configurar y compilar correctamente las bibliotecas y seleccionar un $PREFIX adecuado, puede instalar los resultados de la compilación. El nombre $BUILD hace referencia al directorio donde ejecutó la compilación (este directorio contiene CMakeCache.txt, entre muchos otros archivos).

Desde una línea de comandos, la instalación en el $PREFIX elegido se puede ejecutar a través de CMake usando la opción cmake --install subcommand:

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

Importante

Si configuró las bibliotecas usando un generador multiconfiguración (p. ej., Visual Studio o Xcode), también deberá pasar la --config opción de línea de comandos y el valor de la configuración de compilación que desea instalar. Para cualquier valor --config utilizado para la instalación, también debe haber ejecutado previamente un cmake --build dentro de ese directorio con el mismo --config valor.

Nota

Si optó por una instalación a nivel de $PREFIX sistema, es posible que deba ejecutarla como usuario con privilegios. Si no puede o no desea ejecutar la instalación como usuario con privilegios, debería usar un prefijo de instalación por usuario.

Tip

No es necesario establecer un CMAKE_INSTALL_PREFIX si se usa la opción de línea de comandos --prefix con cmake --install. La opción --prefix anulará lo especificado por CMAKE_INSTALL_PREFIX al configurar el proyecto.

Volver

Guías prácticas

En esta página