Almacenamiento en caché binario
La mayoría de los puertos del registro público vcpkg se compilan a partir del origen. Al compilar desde el origen, vcpkg puede garantizar la máxima compatibilidad mediante el mismo entorno, las herramientas de compilación, las marcas del compilador, las marcas del enlazador y otras configuraciones que se usan en el proyecto para compilar las dependencias.
Cuando se habilita el almacenamiento en caché binario, después de compilar cada paquete a partir del origen, vcpkg crea un paquete binario. Los paquetes binarios contienen la salida de compilación de un paquete: archivos binarios, archivos de integración del sistema de compilación, documentación de uso, licencia y otros archivos. Si una ejecución posterior requiere que se instale un paquete almacenado en caché, vcpkg determina si desea restaurar el paquete binario almacenado en caché o desencadenar una compilación desde el origen.
De este modo, el almacenamiento en caché binario reduce el impacto de las siguientes desventajas de la creación desde el origen:
- Esfuerzo duplicado: al reducir el número de veces que se debe compilar un paquete a partir del origen.
- Tiempos de compilación largos: restaurar un paquete binario suele ser una operación muy rápida que tarda segundos en completarse.
El almacenamiento en caché binario es especialmente eficaz en escenarios de CI en los que los contenedores efímeros o los agentes de compilación obligan a vcpkg a trabajar con una pizarra limpia cada vez. Mediante el uso de una caché binaria basada en la nube (como Paquetes de GitHub o Artefactos de Azure DevOps), puede conservar paquetes binarios entre ejecuciones para garantizar la máxima velocidad, ya que las recompilaciones solo se producen cuando se realizan cambios en las dependencias o la configuración.
Sugerencia
Se recomienda crear una caché binaria con permisos de lectura y escritura para cada canalización de integración continua o flujo de trabajo. Los desarrolladores individuales deben tener acceso de solo lectura a la caché binaria generada por CI.
Las cachés binarias se pueden hospedar en diversos entornos. La forma más básica de una caché binaria es una carpeta en la máquina local o un recurso compartido de archivos de red. Las memorias caché también se pueden almacenar en cualquier fuente de NuGet (como paquetes de GitHub o artefactos de Azure DevOps), Azure Blob Storage, Google Cloud Storage y muchos otros servicios.
Si el proveedor de CI ofrece una función nativa de "almacenamiento en caché", se recomienda usar el almacenamiento en caché binario vcpkg y el método nativo para obtener los resultados más eficaces.
Reutilización de una caché binaria para el desarrollo
Aunque no se recomienda como mecanismo de distribución binaria, el almacenamiento en caché binario se puede usar para reutilizar la salida de compilación de varios sistemas. Por ejemplo, los desarrolladores pueden usar los paquetes binarios generados por una ejecución de CI en sus máquinas locales. Para que otros métodos reutilicen e integren archivos binarios generados por vcpkg, consulte vcpkg export
.
Por ejemplo, puede configurar una fuente nuGet hospedada en Azure Artifacts para aceptar paquetes binarios creados a partir de la canalización de CI y reutilizarlos en un entorno de desarrollo.
Tendrá que configurar la fuente de Azure Artifacts para conceder permisos de lectura y escritura a la canalización de Azure DevOps, así como conceder permisos de solo lectura para hosts en el equipo de desarrollo.
Caché binaria predeterminada
El almacenamiento en caché binario está habilitado de forma predeterminada con un files
proveedor en la primera ubicación válida de:
- Windows
%VCPKG_DEFAULT_BINARY_CACHE%
%LOCALAPPDATA%\vcpkg\archives
%APPDATA%\vcpkg\archives
- Distinta de Windows
$VCPKG_DEFAULT_BINARY_CACHE
$XDG_CACHE_HOME/vcpkg/archives
$HOME/.cache/vcpkg/archives
La ayuda reducida en la herramienta está disponible a través de vcpkg help binarycaching
.
El almacenamiento en caché binario solo cubre los archivos binarios que se compilan. Para almacenar en caché los archivos de origen y las herramientas precompiladas, consulte Almacenamiento en caché de recursos.
Pasos siguientes
Lea los tutoriales para obtener información sobre cómo configurar una caché binaria y la referencia de sintaxis de configuración: