チュートリアル: 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
のフォルダー。 - フォルダーに
versions
名前が付けられたbaseline.json
ファイル。
リポジトリには、スクリプト、LICEN、ファイルStandard Editionファイル、ドキュメントなど、必要な他のファイルをREADME.md
含めることができます。
1 - フォルダーとversions
フォルダーを作成しますports
。
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
のすべてのパッケージ ポートをコピーします。 各ポートには、少なくとも 1 つのファイルとファイルを含む独自のディレクトリが 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
次のステップ
以上で作業は終了です。 vcpkg で使用する独自のプライベート Git ベースのレジストリを設定しました。
次に試すその他のタスクを次に示します。
vcpkg