Lire en anglais

Partager via


Mise en cache binaire

La plupart des ports du registre public vcpkg sont générés à partir de la source. En créant à partir de la source, vcpkg peut garantir une compatibilité maximale à l’aide du même environnement, des outils de build, des indicateurs de compilateur, des indicateurs d’éditeur de liens et d’autres configurations que vous utilisez dans votre projet pour générer vos dépendances.

Lorsque la mise en cache binaire est activée, une fois chaque package généré à partir de la source, vcpkg crée un package binaire. Les packages binaires contiennent la sortie de build d’un package : fichiers binaires, fichiers d’intégration du système de génération, documentation d’utilisation, licence et autres fichiers. Si une exécution ultérieure nécessite l’installation d’un package mis en cache, vcpkg détermine s’il faut restaurer le package binaire mis en cache ou déclencher une build à partir de la source.

De cette façon, la mise en cache binaire réduit l’impact des inconvénients suivants de la génération à partir de la source :

  • Effort dupliqué : en réduisant le nombre de fois où un package doit être généré à partir de la source.
  • Temps de génération longs : la restauration d’un package binaire est généralement une opération très rapide qui prend des secondes.

La mise en cache binaire est particulièrement efficace dans les scénarios CI où les conteneurs éphémères ou les agents de build forcent vcpkg à fonctionner avec une ardoise propre à chaque fois. En utilisant un cache binaire basé sur le cloud (par exemple, GitHub Packages ou Azure DevOps Artifacts), vous pouvez conserver des packages binaires entre les exécutions pour garantir une vitesse maximale, car les reconstructions ne se produisent que lorsque vous apportez des modifications à vos dépendances ou configuration.

Conseil

Il est recommandé de créer un cache binaire avec des autorisations de lecture et d’écriture pour chaque pipeline d’intégration ou flux de travail continu. Les développeurs individuels doivent avoir un accès en lecture seule au cache binaire produit par CI.

Les caches binaires peuvent être hébergés dans divers environnements. La forme la plus simple d’un cache binaire est un dossier sur l’ordinateur local ou un partage de fichiers réseau. Les caches peuvent également être stockés dans n’importe quel flux NuGet (par exemple, GitHub Packages ou Azure DevOps Artifacts), Stockage Blob Azure, Google Cloud Storage et de nombreux autres services.

Si votre fournisseur CI offre une fonction « mise en cache » native, il est recommandé d’utiliser la mise en cache binaire vcpkg et la méthode native pour les résultats les plus performants.

Réutilisation d’un cache binaire pour le développement

Bien qu’il ne soit pas recommandé comme mécanisme de distribution binaire, la mise en cache binaire peut être utilisée pour réutiliser la sortie de build à partir de plusieurs systèmes. Par exemple, les développeurs peuvent utiliser les packages binaires générés par une exécution CI sur leurs ordinateurs locaux. Pour d’autres méthodes de réutilisation et d’intégration des fichiers binaires produits par vcpkg, examinez vcpkg export.

Par exemple, vous pouvez configurer un flux NuGet hébergé sur Azure Artifacts pour accepter les packages binaires générés à partir de votre pipeline CI et les réutiliser dans un environnement de développement.

Vous devez configurer votre flux Azure Artifacts pour accorder des autorisations de lecture et d’écriture à votre pipeline Azure DevOps, ainsi que des autorisations en lecture seule pour les hôtes de votre équipe de développement.

Cache binaire par défaut

La mise en cache binaire est activée par défaut avec un files fournisseur au premier emplacement valide de :

  • Windows
  1. %VCPKG_DEFAULT_BINARY_CACHE%
  2. %LOCALAPPDATA%\vcpkg\archives
  3. %APPDATA%\vcpkg\archives
  • Non-Windows
  1. $VCPKG_DEFAULT_BINARY_CACHE
  2. $XDG_CACHE_HOME/vcpkg/archives
  3. $HOME/.cache/vcpkg/archives

L’aide réduite dans l’outil est disponible via vcpkg help binarycaching.

La mise en cache binaire couvre uniquement les fichiers binaires que vous générez. Pour mettre en cache les fichiers sources et les outils prédéfinis, consultez Mise en cache des ressources.

Étapes suivantes

Lisez les tutoriels pour savoir comment configurer un cache binaire et la référence de syntaxe de configuration :