教學課程:使用 Git 將套件發佈至私人 vcpkg 登錄

您可以使用 Git 建立自己的套件私人登錄,以透過 vcpkg 取用。 如果您想要使用私人程式庫,或想要對現有套件進行非公用修改,私人登錄是理想的做法。 您可以完全控制套件的版本和內容,因此您實際上沒有限制可在私人登錄中放置的內容。

在本教學課程中,我們將示範如何:

先決條件:

  • vcpkg
  • Git
  • 終端機

1 - 使用 Git 建立 vcpkg 登錄

vcpkg 的 Git 型登錄是具有 vcpkg 所瞭解之特定配置的 Git 存放庫。

初始化 Git 登錄:

mkdir vcpkg-registry
cd vcpkg-registry
git init

2 - 建立登錄配置

vcpkg Git 型登錄需要下列各項:

  • 名為 ports 的資料夾,包含登錄的埠,
  • 名為 versions 的資料夾,包含版本資料庫,
  • 資料夾中名為 baseline.jsonversions 檔案。

您的存放庫可以包含您想要的任何其他檔案,例如:腳本、LICENSE 檔案、檔案、 README.md 檔等。

1 - 建立 portsversions 資料夾:

mkdir ports
mkdir versions

2 - 使用下列內容在 versions 資料夾中建立名為 baseline.json 的檔案:

{
  "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

後續步驟

就這麼簡單! 您已設定自己的私人 Git 型登錄,以搭配 vcpkg 使用。

以下是一些其他工作,可嘗試下一步: