Tutorial: Publicación de paquetes en un registro vcpkg privado mediante Git
Puede crear su propio registro privado de paquetes para consumir a través de vcpkg mediante Git. Los registros privados son ideales si desea usar bibliotecas privadas o desea realizar modificaciones no públicas en los paquetes existentes. Tiene control total sobre las versiones y el contenido de los paquetes, por lo que realmente no hay ningún límite en lo que puede poner en un registro privado.
En este tutorial se muestra cómo:
Requisitos previos:
- vcpkg
- Git
- Un terminal
1- Creación de un registro vcpkg mediante Git
Los registros basados en Git de vcpkg son repositorios de Git con un diseño específico que vcpkg entiende.
Inicialización de un registro de Git:
mkdir vcpkg-registry
cd vcpkg-registry
git init
2 - Creación del diseño del Registro
Un registro basado en Git vcpkg requiere lo siguiente:
- una carpeta denominada
ports
para contener los puertos del Registro, - una carpeta denominada
versions
para contener la base de datos de versiones, - un archivo denominado
baseline.json
en laversions
carpeta .
El repositorio puede contener cualquier otro archivo que desee, por ejemplo: scripts, un archivo LICENSE, un archivo, documentación README.md
, etc.
1 - Crear las ports
carpetas y versions
:
mkdir ports
mkdir versions
2 - Cree un archivo denominado baseline.json
en la versions
carpeta con el siguiente contenido:
{
"default": {}
}
El archivo válido baseline.json
mínimo debe incluir el contenido anterior. Lea la documentación de control de versiones para obtener más información sobre el baseline.json
archivo y la base de datos de versiones.
3- Confirmación de los cambios en el repositorio
git add versions/baseline.json
git commit -m "Initial commit"
Opcionalmente, si tiene configurado un repositorio de Git remoto, este es un buen punto para insertar los cambios.
git remote add origin https://example.com/vcpkg-registry.git
git push --set-upstream origin HEAD
3 - Agregar puertos al registro
Copie todos los puertos del paquete en la ports
carpeta del Registro. Cada puerto debe tener su propio directorio que contenga al menos un vcpkg.json
archivo y un portfile.cmake
archivo. Obtenga más información sobre cómo crear puertos en el tutorial sobre el empaquetado de repositorios de GitHub.
git add ports/.
git commit -m "Add registry ports"
4- Actualización de la base de datos de versiones
Cada puerto del Registro debe tener un archivo de versión correspondiente. El comando genera vcpkg x-add-version
archivos de versión. Este comando también actualiza la entrada de línea base para cada puerto de version/baseline.json
.
Para actualizar la base de datos de versiones de todos los puertos a la vez, ejecute:
vcpkg --x-builtin-ports-root=./ports --x-builtin-registry-versions-dir=./versions x-add-version --all --verbose
--x-builtin-registry-versions-dir
Y --x-builtin-ports-root
son opciones de redirección.
Normalmente, el comando funciona en el x-add-version
registro integrado de vcpkg; pero mediante las opciones de redirección, es posible usar el comando en los registros de Git locales.
La --all
opción hace que vcpkg examine el ports
directorio para todos los puertos disponibles y los actualiza a la vez. Por último, la --verbose
opción hace que el comando imprima cada operación que se ejecuta en la salida estándar, puede suprimir la salida quitando esta opción.
x-add-version
requiere que todos los cambios de puerto se hayan confirmado en el repositorio git del registro. Lea la documentación de [x-add-version
comando] para obtener más información.
Cuando toda la salida sea correcta, ejecute:
git add .
git commit -m "Update versions database"
Si tiene un repositorio git remoto, no olvide insertar los cambios:
git push
Pasos siguientes
Y listo. Ha configurado su propio registro privado basado en Git para usarlo con vcpkg.
Estas son algunas tareas adicionales para probar a continuación: