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.json
versions
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.json
versions
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.json
aktualisiert.
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: