Руководство. Публикация пакетов в частном реестре vcpkg с помощью Git
Вы можете создать собственный частный реестр пакетов для использования через vcpkg с помощью Git. Частные реестры идеально подходят, если вы хотите использовать частные библиотеки или хотите внести неогласные изменения в существующие пакеты. У вас есть полный контроль над версиями и содержимым пакетов, поэтому на самом деле нет ограничений на то, что можно поместить в частный реестр.
В этом руководстве показано, как:
Необходимые условия:
- vcpkg
- Git
- Терминал
1. Создание реестра vcpkg с помощью Git
Реестры на основе Git vcpkg — это репозитории Git с определенным макетом, который понимает vcpkg.
Инициализация реестра Git:
mkdir vcpkg-registry
cd vcpkg-registry
git init
2. Создание макета реестра
Для реестра на основе vcpkg Git требуется следующее:
- папка с именем
ports
, содержащая порты реестра, - папка с именем
versions
, содержащая базу данных версий, - файл с именем
baseline.json
в папкеversions
.
Репозиторий может содержать любые другие файлы, например скрипты, файл LICENSE, файл, README.md
документацию и т. д.
1. Создание ports
папок и versions
папок:
mkdir ports
mkdir versions
2. Создайте файл с именем baseline.json
в папке versions
со следующим содержимым:
{
"default": {}
}
Минимальный допустимый baseline.json
файл должен содержать указанное выше содержимое. Ознакомьтесь с документацией по использованию версий, чтобы узнать больше о baseline.json
файле и базе данных версий.
3. Фиксация изменений в репозитории
git add versions/baseline.json
git commit -m "Initial commit"
При необходимости, если у вас есть удаленный репозиторий Git, это хорошая точка для отправки изменений.
git remote add origin https://example.com/vcpkg-registry.git
git push --set-upstream origin HEAD
3. Добавление портов в реестр
Скопируйте все порты пакета в папке ports
в реестре. Каждый порт должен иметь собственный vcpkg.json
каталог, содержащий по крайней мере файл и portfile.cmake
файл. Дополнительные сведения о создании портов в руководстве по упаковке репозиториев GitHub.
git add ports/.
git commit -m "Add registry ports"
4. Обновление базы данных версий
Каждый порт в реестре должен иметь соответствующий файл версии. Файлы версий создаются командой vcpkg x-add-version
. Эта команда также обновляет базовую запись для каждого порта.version/baseline.json
Чтобы обновить базу данных версий для всех портов одновременно, выполните следующую команду:
vcpkg --x-builtin-ports-root=./ports --x-builtin-registry-versions-dir=./versions x-add-version --all --verbose
Параметры --x-builtin-ports-root
перенаправления и --x-builtin-registry-versions-dir
являются параметрами перенаправления.
Как правило, x-add-version
команда работает со встроенным реестром vcpkg, но с помощью параметров перенаправления можно использовать команду в локальных реестрах Git.
Этот --all
параметр делает vcpkg сканировать ports
каталог для всех доступных портов и обновлять их сразу. Наконец, параметр --verbose
делает команду печати каждой операции, выполняемой в стандартные выходные данные, вы можете отключить выходные данные, удалив этот параметр.
Требуется x-add-version
, чтобы все изменения портов были зафиксированы в репозитории Git реестра. Дополнительные сведения см. в документации по [x-add-version
команде].
Когда все выходные данные выглядят правильно, выполните следующую команду:
git add .
git commit -m "Update versions database"
Если у вас есть удаленный репозиторий Git, не забудьте отправить изменения:
git push
Next Steps
Вот и все! Вы настроили собственный частный реестр на основе Git для использования с vcpkg.
Ниже приведены некоторые дополнительные задачи, которые необходимо выполнить следующим образом: