Kurz: Instalace konkrétní verze knihoven Boost pomocí standardních hodnot registru
Článek
Vcpkg poskytuje Boost sadu knihoven jako jednotlivé balíčky jako pohodlí pro uživatele, kteří závisí pouze na omezené podmnožině balíčků Boost.
Tento přístup má ale kompromis. Uživatelé, kteří chtějí uzamknout konkrétní verzi závislostí Boost, musí přepsat verze každého balíčku Boost, na kterém závisí.
Existuje však jednoduché řešení tohoto problému pomocí standardních hodnot registru a vzorů balíčků.
Požadavky
Terminál
Kompilátor C++
vcpkg
Problém
Předpokládejme, že máte projekt, na který závisí boost-optional , a chcete uzamknout verzi 1.80.0 knihoven Boost. Takže pro svoji závislost vytvoříte přepsání, jak je znázorněno níže:
Při spuštění vcpkg installsi všimnete, že byla uzamčena pouze verze boost-optional , zatímco 1.80.0 ostatní závislosti Boost používají základní verzi (1.83.0).
Console
Fetching registry information from https://github.com/Microsoft/vcpkg (HEAD)...
Detecting compiler hash for triplet x64-linux...
The following packages will be built and installed:
* boost-assert:x64-linux -> 1.83.0
* boost-config:x64-linux -> 1.83.0
* boost-core:x64-linux -> 1.83.0
* boost-detail:x64-linux -> 1.83.0
* boost-io:x64-linux -> 1.83.0
* boost-move:x64-linux -> 1.83.0
boost-optional:x64-linux -> 1.80.0
* boost-predef:x64-linux -> 1.83.0
* boost-preprocessor:x64-linux -> 1.83.0
* boost-static-assert:x64-linux -> 1.83.0
* boost-throw-exception:x64-linux -> 1.83.0
* boost-type-traits:x64-linux -> 1.83.0
* boost-uninstall:x64-linux -> 1.83.0
* boost-utility:x64-linux -> 1.83.0
* boost-vcpkg-helpers:x64-linux -> 1.83.0
Additional packages (*) will be modified to complete this operation.
1. Získání směrného plánu verze Boost
Spuštěním následujícího příkazu zobrazte historii potvrzení, která změnila databázi boost-optional verzí balíčku:
caa7579a1c48e2ca770f6ccf98cb03db95642631 2023-09-13 [boost] update to v1.83.0 (#33597)
5d3798ac7388ca66c169773e46103b14077b76a4 2023-06-06 [boost] Remove port version constraints (#31572)
501db0f17ef6df184fcdbfbe0f87cde2313b6ab1 2023-04-15 [boost-build] Fix SHA512 and add MSVC workaround. (#30884)
bedfdb774cfbe47da202169046ca15441a213f3e 2023-04-15 [Boost] Update Boost ports to 1.82#0 (#30856)
9484a57dd560b89f0a583be08af6753611c57fd5 2023-02-24 Update vcpkg-tool to 2023-02-16. (#29664)
6aa38234d08efefc55b70025cf6afc2212e78e15 2023-02-01 [boost] Fix generate ports to match the tree. (#29338)
6d41737729b170cb7d323a4fddd21607c9237636 2022-12-20 [boost] update to 1.81.0 (#28356)
5ba2b95aea2a39aa89444949c7a047af38c401c1 2022-10-18 [boost] Add version constraints (#26817)
8424da584e59e05956913bf96f87654aa3096c7e 2022-08-25 [boost] update to 1.80.0 (#26233)
96ec7fb25da25e0463446e552d59715a47c95e73 2022-04-21 [boost] update to 1.79.0 (#24210)
76d4836f3b1e027758044fdbdde91256b0f0955d 2022-01-10 [boost] update to 1.78.0 (#21928)
cc471dc0f59b7b2066d6172c2893419412327a7a 2021-09-27 [boost] update to 1.77.0 (#19556)
761c81d43335a5d5ccc2ec8ad90bd7e2cbba734e 2021-07-07 [boost] update to 1.76.0 (#17335)
68a74950d0400f5a803026d0860f49853984bf11 2021-01-21 [vcpkg] Rename `port_versions` to `versions` (#15784)
Jak vidíte, zobrazí se potvrzení verze 1.80.0 . V dalším kroku použijete toto potvrzení jako směrný plán pro všechny balíčky Boost.
2. Použití směrného plánu k přepsání balíčků Boost
Místo toho, abyste přidali přepsání všech souvisejících závislostí Boost, můžete místo toho pomocí směrného plánu registru uzamknout sadu verzí. Upravte soubor vcpkg-configuration.json následujícím způsobem:
Konfigurační soubor obsahuje dvě definice registru. Který default-registry odkazuje na registr https://github.com/Microsoft/vcpkg kurátorovaný vcpkg při použití nejnovější potvrzení v době psaní tohoto článku. A druhý registr, který také odkazuje na kurátorovaný registr vcpkg, ale na předchozím směrném plánu a je omezen na balíčky, které odpovídají vzorům boost* a boost-* vzorům.
Pokud spustíte vcpkg install příkaz, měli byste si všimnout, že tentokrát všechny knihovny Boost používají verzi 1.80.0.
Console
Fetching registry information from https://github.com/Microsoft/vcpkg (HEAD)...
Detecting compiler hash for triplet x64-linux...
The following packages will be built and installed:
* boost-assert:x64-linux -> 1.80.0
* boost-config:x64-linux -> 1.80.0
* boost-core:x64-linux -> 1.80.0
* boost-detail:x64-linux -> 1.80.0
* boost-io:x64-linux -> 1.80.0
* boost-move:x64-linux -> 1.80.0
boost-optional:x64-linux -> 1.80.0
* boost-predef:x64-linux -> 1.80.0
* boost-preprocessor:x64-linux -> 1.80.0
* boost-static-assert:x64-linux -> 1.80.0
* boost-throw-exception:x64-linux -> 1.80.0
* boost-type-traits:x64-linux -> 1.80.0
* boost-uninstall:x64-linux -> 1.80.0
* boost-utility:x64-linux -> 1.80.0
* boost-vcpkg-helpers:x64-linux -> 1.80.0
* boost-winapi:x64-linux -> 1.80.0
Additional packages (*) will be modified to complete this operation.
Stejný přístup lze použít pro jiné metabalíky, jako je qt.
Další kroky
Tady je několik dalších úkolů, které můžete vyzkoušet:
Instalace balíčků pomocí souboru manifestu
Instalace balíčků pro vlastní platformy pomocí tripletů
Uzamčení verzí pro opakovatelné buildy pomocí správy verzí
Opakované použití binárních binárních souborů napříč běhy kontinuální integrace s využitím binární mezipaměti
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.
Zpětná vazba k produktu vcpkg
vcpkg je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby:
Azure HPC je účelově sestavená cloudová funkce pro úlohy HPC a AI, která využívá špičkové procesory a interfiniBand třídy HPC, aby poskytovala nejlepší výkon, škálovatelnost a hodnotu aplikací. Azure HPC umožňuje uživatelům odhalovat inovace, produktivitu a obchodní flexibilitu prostřednictvím vysoce dostupné řady technologií HPC a AI, které se dají dynamicky přidělovat při změně obchodních a technických potřeb. Tento studijní program je řada modulů, které vám pomůžou začít pracovat s prostředím Azure HPC –