Freigeben über


Lernprogramm: Veröffentlichen von Paketen in einer privaten vcpkg-Registrierung mithilfe von Git

Sie können ihre eigene private Registrierung von Paketen erstellen, die über vcpkg mit Git verwendet werden. Private Registrierungen sind ideal, wenn Sie private Bibliotheken verwenden oder nicht öffentliche Änderungen an vorhandenen Paketen vornehmen möchten. Sie haben die volle Kontrolle über die Versionen und Inhalte Ihrer Pakete, sodass es wirklich keine Beschränkung gibt, was Sie in eine private Registrierung aufnehmen können.

In diesem Lernprogramm zeigen wir Folgendes:

Voraussetzungen:

  • vcpkg
  • Git
  • Ein Terminal

1 – Erstellen einer vcpkg-Registrierung mit Git

Die Git-basierten Registrierungen von vcpkg sind Git-Repositorys mit einem bestimmten Layout, das vcpkg versteht.

Initialisieren einer Git-Registrierung:

mkdir vcpkg-registry
cd vcpkg-registry
git init

2 – Erstellen des Registrierungslayouts

Für eine gitbasierte vcpkg-Registrierung ist Folgendes erforderlich:

  • ein Ordner, ports der die Ports der Registrierung enthalten soll,
  • ein Ordner, versions der die Versionsdatenbank enthalten soll,
  • eine Im Ordner benannte baseline.jsonversions Datei.

Ihr Repository kann beliebige andere Dateien enthalten, z. B. Skripts, eine LICENSE-Datei, eine README.md Datei, Dokumentation usw.

1 – Erstellen Sie die und versions die ports Ordner:

mkdir ports
mkdir versions

2 – Erstellen Sie eine Im Ordner benannte baseline.jsonversions Datei mit dem folgenden Inhalt:

{
  "default": {}
}

Die minimale gültige baseline.json Datei sollte den obigen Inhalt enthalten. Lesen Sie die Versionsverwaltungsdokumentation , um mehr über die baseline.json Datei und die Versionsdatenbank zu erfahren.

3 – Übernehmen Sie Ihre Änderungen an dem Repository

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

Wenn Sie ein Git-Remote-Repository eingerichtet haben, ist dies ein guter Punkt, um Ihre Änderungen zu pushen.

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

3 – Hinzufügen von Ports zur Registrierung

Kopieren Sie alle Ihre Paketports im ports Ordner in der Registrierung. Jeder Port muss über ein eigenes Verzeichnis verfügen, das mindestens eine vcpkg.json Datei und eine portfile.cmake Datei enthält. Erfahren Sie mehr über das Erstellen von Ports im Lernprogramm zum Verpacken von GitHub-Repositorys.

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

4 – Aktualisieren der Versionsdatenbank

Jeder Port in der Registrierung muss über eine entsprechende Versionsdatei verfügen. Versionsdateien werden vom vcpkg x-add-version Befehl generiert. Mit diesem Befehl wird auch der Basiseintrag für jeden Port in version/baseline.jsonaktualisiert.

Um die Versionsdatenbank für alle Ports gleichzeitig zu aktualisieren, führen Sie Folgendes aus:

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

Die --x-builtin-ports-root Umleitungsoptionen sind --x-builtin-registry-versions-dir . Normalerweise wird der x-add-version Befehl in der integrierten Registrierung von vcpkg ausgeführt. Mithilfe der Umleitungsoptionen ist es jedoch möglich, den Befehl in lokalen Git-Registrierungen zu verwenden.

Mit der --all Option wird das ports Verzeichnis von vcpkg auf alle verfügbaren Ports überprüft und alle gleichzeitig aktualisiert. Schließlich macht die --verbose Option den Befehl zum Drucken der einzelnen Vorgänge, die er in der Standardausgabe ausführt, und Sie können die Ausgabe unterdrücken, indem Sie diese Option entfernen.

Dies x-add-version erfordert, dass alle Portänderungen für das Git-Repository der Registrierung übernommen wurden. Weitere Informationen finden Sie in der Dokumentation [x-add-version Befehls].

Wenn alle Ausgaben korrekt aussehen, führen Sie Folgendes aus:

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

Wenn Sie über ein Remote-Git-Repository verfügen, vergessen Sie nicht, Ihre Änderungen zu übertragen:

git push

Nächste Schritte

Das war’s! Sie haben Ihre eigene private gitbasierte Registrierung für die Verwendung mit vcpkg eingerichtet.

Hier sind einige zusätzliche Aufgaben, die Sie als Nächstes ausprobieren können: