Udostępnij za pośrednictwem


Samouczek: publikowanie pakietów w prywatnym rejestrze vcpkg przy użyciu usługi Git

Możesz utworzyć własny prywatny rejestr pakietów do użycia za pośrednictwem narzędzia vcpkg przy użyciu narzędzia Git. Prywatne rejestry są idealne, jeśli chcesz używać bibliotek prywatnych lub chcesz wprowadzić niepublityczne modyfikacje istniejących pakietów. Masz pełną kontrolę nad wersjami i zawartością pakietów, więc naprawdę nie ma żadnych ograniczeń dotyczących tego, co można umieścić w rejestrze prywatnym.

W tym samouczku pokazano, jak:

Wymagania wstępne:

  • vcpkg
  • Git
  • Terminal

1 — Tworzenie rejestru vcpkg przy użyciu usługi Git

Rejestry oparte na Git w vcpkg to repozytoria Git z konkretnym układem, który rozumie vcpkg.

Inicjowanie rejestru Git:

mkdir vcpkg-registry
cd vcpkg-registry
git init

2 — Tworzenie układu rejestru

Rejestr oparty na Git przy użyciu vcpkg wymaga następujących elementów:

  • folder o nazwie ports zawierający porty rejestru,
  • folder o nazwie versions zawierający bazę danych wersji,
  • plik o nazwie baseline.json w folderze versions .

Repozytorium może zawierać inne pliki, na przykład skrypty, plik LICENCJI, plik, dokumentację README.md itp.

1 - Utwórz foldery ports i versions:

mkdir ports
mkdir versions

2 — Utwórz plik o nazwie baseline.json w folderze versions o następującej zawartości:

{
  "default": {}
}

Minimalny prawidłowy baseline.json plik powinien zawierać powyższą zawartość. Przeczytaj dokumentację dotyczącą przechowywania wersji , aby dowiedzieć się więcej o baseline.json pliku i bazie danych wersji.

3 — Zatwierdzanie zmian w repozytorium

git add versions/baseline.json
git commit -m "Initial commit"

Opcjonalnie, jeśli masz skonfigurowane zdalne repozytorium Git, to jest dobry moment, aby przesłać swoje zmiany.

git remote add origin https://example.com/vcpkg-registry.git
git push --set-upstream origin HEAD

3 — Dodawanie portów do rejestru

Skopiuj wszystkie porty pakietu w ports folderze w rejestrze. Każdy port musi mieć własny katalog zawierający co najmniej vcpkg.json plik i portfile.cmake plik. Dowiedz się więcej o tworzeniu portów w samouczku dotyczącym tworzenia pakietów repozytoriów GitHub.

git add ports/.
git commit -m "Add registry ports"

4 — Aktualizowanie bazy danych wersji

Każdy port w rejestrze musi mieć odpowiedni plik wersji. Polecenie vcpkg x-add-version generuje pliki wersji. To polecenie również aktualizuje wpis bazowy dla każdego portu w version/baseline.json.

Aby zaktualizować bazę danych wersji dla wszystkich portów jednocześnie, uruchom polecenie:

vcpkg --x-builtin-ports-root=./ports --x-builtin-registry-versions-dir=./versions x-add-version --all --verbose

Opcje przekierowania to --x-builtin-ports-root i --x-builtin-registry-versions-dir. x-add-version Zwykle polecenie działa we wbudowanym rejestrze vcpkg, ale przy użyciu opcji przekierowania można użyć polecenia w lokalnych rejestrach Git.

Opcja --all powoduje, że narzędzie vcpkg skanuje ports katalog dla wszystkich dostępnych portów i aktualizuje je jednocześnie. Na koniec opcja --verbose sprawia, że polecenie wyświetla każdą operację wykonywaną na standardowe wyjście. Można pominąć dane wyjściowe, usuwając tę opcję.

Gdy wszystkie dane wyjściowe wyglądają poprawnie, uruchom polecenie:

git add .
git commit -m "Update versions database"

Jeśli masz zdalne repozytorium Git, nie zapomnij przesłać zmian.

git push

Dalsze kroki

I to wszystko! Skonfigurowaliśmy własny prywatny rejestr oparty na usłudze Git do użycia z narzędziem vcpkg.

Poniżej przedstawiono kilka dodatkowych zadań, które należy wykonać, aby spróbować wykonać następne czynności: