Menu Docs
Página inicial do Docs
/ / /
Driver C
/ /

Como: Instalar libbson/libmongoc a partir da fonte

Nesta página

  • Escolher um prefixo
  • Usando um prefixo de instalação local do usuário sem privilégios (recomendado)
  • Selecionando um prefixo de instalação em todo o sistema
  • Instalando com CMake

Importante

Esta página pressupõe que você possa configurar e construir com êxito os componentes que deseja instalar, o que é detalhado e explicado na página de tutorial Criando Bibliotecas de Driver C a partir da Origem . Enquanto esse tutorial orienta a compilação das fontes e o funcionamento de uma instalação mínima, esta página oferecerá orientações mais profundas sobre as nuances e as opções disponíveis para instalar as bibliotecas mongo-c-driver a partir de uma compilação de origem.

mongo-c-driver usa CMake para gerar suas regras de instalação e instala uma variedade de artefatos de interesse. Para integração com programas downstream, os pacotes de arquivos de configuração e pkg-config arquivos seriam de particular interesse.

Se você pretende importar libbson ou libmongoc via CMake ou pkg-config, pode ser útil estar ciente de como a respectiva ferramenta procura metadados do pacote.

O CMake cria um conjunto de caminhos de pesquisa com base em um conjunto de prefixos, que são lidos do ambiente e das configurações do CMake em tempo de configuração.

Em particular, a variável de ambiente $PATH será utilizada para construir os prefixos padrão para o sistema. Para cada diretório D em $PATH:

  1. Se o componente de caminho final de D for "bin" ou "sbin", D será substituído pelo caminho pai de D.

  2. D é adicionado como um prefixo do Atlas Search .

Isso tem o efeito de que diretórios comuns específicos do Unix em $PATH, como /usr/bin e /usr/local/bin acabarão causando CMake para Atlas Search em /usr e /usr/local é prefixos, respectivamente. Se você tiver o diretório $HOME/.local/bin no seu $PATH, o diretório $HOME/.local também será adicionado ao caminho do Atlas Search . Ter $HOME/.local/bin em $PATH é um padrão cada vez mais comum para muitos shell Unix e é recomendado se você pretende usar um Prefixo de Instalação Local de Usuário sem Privilégios (Recomendado) para sua instalação.

Além disso, a variável de ambiente CMAKE_PREFIX_PATH será utilizada para construir uma lista de caminhos. Por padrão, esta variável de ambiente não está definida.

No Windows, os diretórios %ProgramW6432%, %ProgramFiles%, %ProgramFiles(x86)%, %SystemDrive%\\Program Files e %SystemDrive%\\Program Files (x86) também serão adicionados. (Eles vêm da variável CMAKE_SYSTEM_PREFIX_PATH CMake, que é definida durante a detecção de plataforma do CMake.)

Dica

Veja também:

Para obter informações detalhadas sobre a pesquisa de pacotes, consulte o procedimento de pesquisa do CMake seção para obter detalhes completos.

A ferramenta de linha de comando pkg-config procura arquivos .pc em vários diretórios, por padrão em relação ao caminho da própria ferramenta pkg-config . Para obter a lista de diretórios que seu pkg-config pesquisará por padrão, utilize o seguinte comando:

Pergunte ao pkg-config quais diretórios ele procurará por padrão
$ pkg-config "pkg-config" --variable="pc_path"

Diretórios adicionais podem ser especificados usando a variável de ambiente $PKG_CONFIG_PATH . Esses caminhos serão pesquisados antes dos caminhos pkg-config padrão.

No Windows, as chaves de registro HKCU\Software\pkgconfig\PKG_CONFIG_PATH e HKLM\Software\pkgconfig\PKG_CONFIG_PATH podem ser usadas para especificar diretórios de pesquisa adicionais para pkg-config. A adição de diretórios à chave HKCU\… é recomendada para persistir diretórios de pesquisa específicos do usuário.

Dica

Veja também:

Se você tiver man e pkg-config instalados em seu sistema, os procedimentos de pesquisa serão detalhados em man 1 pkg-config. Esta documentação também pode ser encontrada em muitos arquivos de páginas de manual na web, como pkg-config em linux.dia.net.

Chamaremos o diretório para a instalação local do usuário $PREFIX. A seleção do caminho para esse diretório é um tanto arbitrária, mas há algumas recomendações a serem consideradas. O diretório $PREFIX é o caminho que você fornecerá ao CMake ou pkg-config ao configurar um projeto downstream.

É recomendável instalar bibliotecas mongo-c-driver personalizadas em um local do sistema de arquivos sem privilégios específico para a conta de usuário.

Ao contrário de outros sistemas do tipo Unix, o macOS não tem um diretório específico para instalações de pacotes locais do usuário, e cabe ao usuário criar esses diretórios.

A escolha do diretório a ser usado é essencialmente arbitrária. Para instalações por usuário, o único requisito é que o diretório possa ser gravável pelo usuário que deseja executar e usar a instalação.

Para fins de uniformidade com outras variantes do Unix, este guia fará uma leve referência ao uso de $HOME/.local como um prefixo de instalação local do usuário. Isto é baseado no comportamento especificado pelo diretório base XDG especificações e a hierarquia de arquivos systemd comum no Linux e em vários BSDs, mas não é padrão em outras plataformas.

Em sistemas Linux e BSD, é comum utilizar o $HOME/.local diretório como o prefixo para instalações de pacote específicas do usuário. Esta convenção se origina no diretório base do XDG especificação e a hierarquia de arquivos systemd

Devido ao seu uso amplo e suporte em muitas outras ferramentas, este guia recomenda o uso de $HOME/.local como um prefixo de instalação local do usuário.

No Windows, existe um diretório dedicado para arquivos locais do usuário no %UserProfile%\\AppData\\Local. Para referenciá-lo, expanda a variável de ambiente do %LocalAppData% . (Não use a variável de ambiente %AppData% ):

Apesar de existir, esse diretório não tem uma estrutura prescrita que se adapte aos nossos fins. A escolha do prefixo de instalação local do usuário é arbitrária. Este guia desaconselha a criação de arquivos e diretórios adicionais diretamente no diretório inicial do usuário.

Considere usar %LocalAppData%\\MongoDB como prefixo para fins de componentes instalados manualmente.

Se você deseja instalar as bibliotecas do mongo-c-driver em um diretório visível para todos os usuários, existem algumas opções padrão.

Usar uma instalação $PREFIX de /usr/local/ é a principal recomendações para todas as plataformas Unix, mas isso pode variar em alguns sistemas obscuros.

Aviso

NÃO use /usr/ nem / (o diretório raiz) como prefixo: esses diretórios foram projetados para serem cuidadosamente gerenciados pelo sistema. O diretório /usr/local é intencionalmente reservado com o objetivo de instalação de software não gerenciado.

Como alternativa, considere instalar em um diretório distinto que possa ser facilmente removido ou realocado, como /opt/mongo-c-driver/. Isso será facilmente identificável e não interagirá com outros softwares no sistema sem optar explicitamente por participar.

Aviso

É altamente desaconselhado instalar manualmente software em todo o sistema no Windows. Em vez disso, prefira usar um prefixo de instalação sem privilégios por usuário.

Se você deseja executar uma instalação em todo o sistema no Windows, prefira usar um subdiretório nomeado do %ProgramData%, que não exige privilégios administrativos para ler e escrever. (por exemplo, %ProgramData%\\mongo-c-driver)

Depois de configurar e construir as bibliotecas com êxito e selecionar um $PREFIX adequado, você poderá instalar os resultados construídos. Faça com que o nome $BUILD se refira ao diretório onde você executou a construção (este é o diretório que contém CMakeCache.txt, entre muitos outros arquivos).

A partir de uma linha de comando, a instalação no $PREFIX escolhido pode ser executada via CMake usando a opção cmake --install subcommand :

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

Importante

Se você configurou as bibliotecas enquanto usava um gerador de múltiplas configurações (por exemplo, Visual Studio, Xcode), também precisará passar a opção de linha de comando --config e deverá passar o valor da configuração de compilação que deseja instalar . Para qualquer valor escolhido de --config usado para instalação, você também deve ter executado anteriormente um cmake --build dentro desse diretório com o mesmo valor --config .

Observação

Se você optar por usar uma instalação de todo o sistema $PREFIX, é possível que precise executar a instalação como um usuário privilegiado. Se você não puder ou não quiser executar a instalação como um usuário privilegiado, deverá usar um prefixo de instalação por usuário.

Dica

Não é necessário definir um CMAKE_INSTALL_PREFIX se você usar a opção de linha de comando --prefix com cmake --install. A opção --prefix substituirá o que tiver sido especificado por CMAKE_INSTALL_PREFIX quando o projeto foi configurado.

Voltar

Guias de instruções