Binäre Zwischenspeicherung
Die meisten Ports in der öffentlichen vcpkg-Registrierung werden aus der Quelle erstellt. Durch die Erstellung aus der Quelle kann vcpkg die maximale Kompatibilität sicherstellen, indem sie dieselbe Umgebung, Buildtools, Compilerkennzeichnungen, Linkerkennzeichnungen und andere Konfigurationen verwenden, die Sie in Ihrem Projekt zum Erstellen Ihrer Abhängigkeiten verwenden.
Wenn die binäre Zwischenspeicherung aktiviert ist, erstellt vcpkg nach der Erstellung jedes Pakets aus der Quelle ein Binärpaket. Binäre Pakete enthalten die Buildausgabe eines Pakets: Binärdateien, Buildsystemintegrationsdateien, Verwendungsdokumentation, Lizenz und andere Dateien. Wenn bei einer späteren Ausführung ein zwischengespeichertes Paket installiert werden muss, bestimmt vcpkg, ob das zwischengespeicherte Binärpaket wiederhergestellt oder ein Build aus der Quelle ausgelöst werden soll.
Auf diese Weise reduziert die binäre Zwischenspeicherung die Auswirkungen der folgenden Nachteile des Erstellens von Quellen:
- Doppelter Aufwand: Durch Reduzierung der Häufigkeit, mit der ein Paket aus der Quelle erstellt werden muss.
- Lange Buildzeiten: Das Wiederherstellen eines Binärpakets ist in der Regel ein sehr schneller Vorgang, der Sekunden dauert, bis es abgeschlossen ist.
Die binäre Zwischenspeicherung ist besonders in CI-Szenarien wirksam, in denen ephemerale Container oder Build-Agents jedes Mal eine Vcpkg-Funktion erzwingen. Mithilfe eines cloudbasierten Binärcaches (z . B. GitHub-Pakete oder Azure DevOps Artifacts) können Sie binäre Pakete zwischen Denläufen beibehalten, um die maximale Geschwindigkeit sicherzustellen, da neu erstellt wird, wenn Sie Änderungen an Ihren Abhängigkeiten oder Ihrer Konfiguration vornehmen.
Tipp
Es wird empfohlen, einen binären Cache mit Lese- und Schreibberechtigungen für jede fortlaufende Integrationspipeline oder jeden Workflow zu erstellen. Einzelne Entwickler sollten schreibgeschützten Zugriff auf den vom CI erzeugten Binärcache haben.
Binäre Caches können in einer Vielzahl von Umgebungen gehostet werden. Die einfachste Form eines Binärcaches ist ein Ordner auf dem lokalen Computer oder einer Netzwerkdateifreigabe. Caches können auch in jedem NuGet-Feed (z. B. GitHub-Pakete oder Azure DevOps Artifacts), Azure Blob Storage, Google Cloud Storage und viele andere Dienste gespeichert werden.
Wenn Ihr CI-Anbieter eine systemeigene "Caching"-Funktion bietet, empfiehlt es sich, sowohl die binäre vcpkg-Zwischenspeicherung als auch die systemeigene Methode für die leistungsfähigsten Ergebnisse zu verwenden.
Obwohl nicht als binärer Verteilungsmechanismus empfohlen wird, kann die binäre Zwischenspeicherung verwendet werden, um buildausgabe aus mehreren Systemen wiederzuverwenden. Entwickler können z. B. die binärpakete verwenden, die von einem CI auf ihren lokalen Computern erstellt werden. Weitere Methoden zum Wiederverwenden und Integrieren von vcpkg-produzierten Binärdateien sollten Sie sich ansehen vcpkg export
.
Sie können z. B. einen nuGet-Feed konfigurieren, der auf Azure Artifacts gehostet wird, um binäre Pakete zu akzeptieren, die aus Ihrer CI-Pipeline erstellt wurden, und diese in einer Entwicklungsumgebung wiederzuverwenden.
Sie müssen Ihren Azure Artifacts-Feed konfigurieren, um Lese- und Schreibberechtigungen für Ihre Azure DevOps-Pipeline zu erteilen sowie schreibgeschützte Berechtigungen für Hosts in Ihrem Entwicklungsteam zu gewähren.
Die binäre Zwischenspeicherung ist standardmäßig mit einem files
Anbieter am ersten gültigen Speicherort von:
- Windows
%VCPKG_DEFAULT_BINARY_CACHE%
%LOCALAPPDATA%\vcpkg\archives
%APPDATA%\vcpkg\archives
- Nicht-Windows-System
$VCPKG_DEFAULT_BINARY_CACHE
$XDG_CACHE_HOME/vcpkg/archives
$HOME/.cache/vcpkg/archives
Reduzierte In-Tool-Hilfe ist über vcpkg help binarycaching
.
Die binäre Zwischenspeicherung deckt nur Binärdateien ab, die Sie erstellen. Informationen zum Zwischenspeichern von Quelldateien und vordefinierten Tools finden Sie unter "Zwischenspeichern von Ressourcen".
Lesen Sie die Lernprogramme, um zu erfahren, wie Sie einen binären Cache und die Konfigurationssyntaxreferenz einrichten:
Feedback zu vcpkg
vcpkg ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: