Sdílet prostřednictvím


Překryvné porty

Porty vcpkg se obvykle získávají z registrů. Je velmi pravděpodobné, že většina portů, které instalujete, pochází z oficiálního registru vcpkg v https://github.com/Microsoft/vcpkg. Vcpkg vám umožňuje nainstalovat porty dostupné prostřednictvím systému souborů, nazýváme tyto porty, překryvné porty.

Překryvný port může fungovat jako výměna za existující port nebo jako nový port, který není v registru jinak dostupný. Při překladu názvů balíčků mají překryvné porty prioritu.

Překryvné porty se vyhodnocují v následujícím pořadí:

  • Překryvná umístění zadaná v příkazovém řádku přes --overlay-ports.
  • Překryvná umístění zadaná v vcpkg-configuration.json souboru prostřednictvím overlay-ports.
  • Překryvná umístění určená proměnnou VCPKG_OVERLAY_PORTS prostředí

Při překladu názvů portů je vybráno první umístění, které obsahuje odpovídající překryvný port.

Použití překryvného portu

Adresář může představovat sadu překryvných portů a dá se zadat jedním ze dvou způsobů:

  • Jeden překryvný port: <directory>/sqlite3 odkazuje na jeden port.
  • Adresář překryvných portů: <directory> odkazuje na adresář portů A platný port musí obsahovat oba vcpkg.json i portfile.cmake.

Překryvný port můžete přidat několika způsoby:

  • Příkazový řádek: Přidání jedné nebo více --overlay-ports=<directory> možností do příkazu vcpkg
  • Manifest: Naplnění "overlay-ports" pole v vcpkg-configuration.json
  • Proměnná prostředí: Nastavte VCPKG_OVERLAY_PORTS na seznam cest adresářů.

Příklad: Příklad překryvných portů

Vzhledem k této adresářové struktuře:

Example with multiple overlay port directories

Překryvný adresář s názvem team-ports obsahuje porty sqlite3, rapidjson a curl. Překryvný adresář s názvem my-ports obsahuje porty sqlite3 a rapidjson. Adresář vcpkg obsahuje výchozí katalog.

Run (Spuštění):

vcpkg install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports

Instalace:

  • sqlite3 Z my-ports

Run (Spuštění):

vcpkg install sqlite3 rapidjson curl 
    --overlay-ports=my-ports/rapidjson 
    --overlay-ports=vcpkg/ports/curl
    --overlay-ports=team-ports

Instalace:

  • sqlite3 Z team-ports
  • rapidjson Z my-ports
  • curl z portu vcpkg/ports

Příklad: Použití překryvných portů k použití závislosti správce systémových balíčků

Pokud chcete použít závislost správce systémových balíčků nad vcpkg, přečtěte si náš blogový příspěvek.