Cache binário
A maioria das portas no registro público vcpkg é construída a partir do código-fonte. Ao compilar a partir do código-fonte, o 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 da origem, o vcpkg cria um pacote binário. Os pacotes binários contêm a saída de compilação 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, o vcpkg determinará se o pacote binário armazenado em cache deve ser restaurado ou acionado uma compilação a partir da origem.
Dessa forma, o cache binário reduz o impacto das seguintes desvantagens da criação a partir da origem:
- Esforço duplicado: reduzindo o número de vezes que um pacote precisa ser criado a partir da origem.
- 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 build forçam o vcpkg a trabalhar com uma lousa limpa a cada vez. Usando um cache binário baseado em nuvem (como GitHub Packages ou Azure DevOps Artifacts), você pode persistir pacotes binários entre execuções para garantir a velocidade máxima, pois as recompilaçõ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 no computador local ou um compartilhamento de arquivos de rede. Os caches também podem ser armazenados em qualquer feed NuGet (como GitHub Packages ou Azure DevOps Artifacts), Azure Blob Storage, Google Cloud Storage e muitos outros serviços.
Se o seu provedor de CI oferecer uma função nativa de "cache", é recomendável usar o cache binário vcpkg e o método nativo para obter os resultados de melhor desempenho.
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 build de vários sistemas. Por exemplo, os desenvolvedores podem usar os pacotes binários produzidos por um CI executado em seus computadores locais. Para outros métodos para reutilizar e integrar binários produzidos por vcpkg export
vcpkg, consulte .
Por exemplo, você pode configurar um feed NuGet hospedado no Azure Artifacts para aceitar pacotes binários criados a partir do pipeline de CI e reutilizá-los em um ambiente de desenvolvimento.
Você precisará configurar o feed do Azure Artifacts para conceder permissões de leitura e gravação ao pipeline do Azure DevOps, 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
%VCPKG_DEFAULT_BINARY_CACHE%
%LOCALAPPDATA%\vcpkg\archives
%APPDATA%\vcpkg\archives
- Não Windows
$VCPKG_DEFAULT_BINARY_CACHE
$XDG_CACHE_HOME/vcpkg/archives
$HOME/.cache/vcpkg/archives
A ajuda reduzida na ferramenta está disponível via vcpkg help binarycaching
.
O cache binário cobre apenas os binários que você cria. Para armazenar em cache arquivos de origem e ferramentas predefinidas, 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: