Compartilhar via


Cache binário

A maioria das portas no registro público vcpkg é criada a partir do código-fonte. Ao compilar a partir do código-fonte, vcpkg pode garantir a compatibilidade máxima usando o mesmo ambiente, ferramentas de compilação, sinalizadores de compilador, sinalizadores de vinculador e outras configurações que você usa em seu projeto para criar suas dependências.

Quando o cache binário está habilitado, depois que cada pacote é criado a partir do código-fonte, vcpkg cria um pacote binário. Os pacotes binários contêm a build-output de um pacote: binários, arquivos de integração do sistema de compilação, documentação de uso, licença e outros arquivos. Se uma execução posterior exigir que um pacote armazenado em cache seja instalado, vcpkg determinará se deseja restaurar o pacote binário armazenado em cache ou disparar uma compilação a partir do código-fonte.

Dessa forma, o cache binário reduz o impacto das seguintes desvantagens da criação a partir do código-fonte:

  • Esforço duplicado: reduzindo o número de vezes que um pacote precisa ser criado a partir do código-fonte.
  • Tempos de compilação longos: Restaurar um pacote binário é geralmente uma operação muito rápida que leva segundos para ser concluída.

O cache binário é especialmente eficaz em cenários de CI em que contêineres efêmeros ou agentes de compilação forçam o vcpkg a trabalhar com uma folha limpa a cada vez. Usando um cache binário baseado em nuvem (como Pacotes do GitHub ou Artefatos de DevOps do Azure), você pode persistir pacotes binários entre execuções para garantir a velocidade máxima, já que as reconstruções só acontecem quando você faz alterações em suas dependências ou configuração.

Dica

É recomendável criar um cache binário com permissões de leitura e gravação para cada pipeline ou fluxo de trabalho de integração contínua. Os desenvolvedores individuais devem ter acesso somente leitura ao cache binário produzido por CI.

Os caches binários podem ser hospedados em uma variedade de ambientes. A forma mais básica de um cache binário é uma pasta na máquina local ou um compartilhamento de arquivos de rede. Os caches também podem ser armazenados em qualquer feed NuGet (como Pacotes GitHub ou Artefatos de DevOps do Azure), Armazenamento de Blobs do Azure, Armazenamento em Nuvem do Google e muitos outros serviços.

Se o seu provedor de CI oferece uma função de "cache" nativa, é recomendável usar o cache binário vcpkg e o método nativo para obter os resultados mais eficientes.

Reutilizando um cache binário para desenvolvimento

Embora não seja recomendado como um mecanismo de distribuição binária, o cache binário pode ser usado para reutilizar a saída de compilação de vários sistemas. Por exemplo, os desenvolvedores podem usar os pacotes binários produzidos por um CI executados em suas máquinas locais. Para outros métodos para reutilizar e integrar binários produzidos por vcpkg, consulte vcpkg export.

Por exemplo, você pode configurar um feed NuGet hospedado no Azure Artifacts para aceitar pacotes binários criados a partir de seu pipeline de CI e reutilizá-los em um ambiente de desenvolvimento.

Você precisará configurar seu feed de Artefatos do Azure para conceder permissões de leitura e gravação ao pipeline de DevOps do Azure, bem como conceder permissões somente leitura para hosts em sua equipe de desenvolvimento.

Cache binário padrão

O cache binário é habilitado por padrão com um files provedor no primeiro local válido de:

  • Windows
  1. %VCPKG_DEFAULT_BINARY_CACHE%
  2. %LOCALAPPDATA%\vcpkg\archives
  3. %APPDATA%\vcpkg\archives
  • Não Windows
  1. $VCPKG_DEFAULT_BINARY_CACHE
  2. $XDG_CACHE_HOME/vcpkg/archives
  3. $HOME/.cache/vcpkg/archives

Ajuda reduzida na ferramenta está disponível via vcpkg help binarycaching.

O Cache Binário cobre apenas binários que você cria. Para armazenar em cache arquivos de origem e ferramentas pré-criadas, consulte Cache de ativos.

Próximas etapas

Leia os tutoriais para saber como configurar um cache binário e a referência de sintaxe de configuração: