Kurz: Nastavení binární mezipaměti vcpkg pomocí informačního kanálu NuGet
Poznámka:
Tento kurz používá informační kanál NuGet hostovaný v Azure Artifacts, ale stejné pokyny je možné použít pro jiné poskytovatele informačního kanálu NuGet, například GitHub Packages, s některými změnami.
Vcpkg podporuje použití kanálů balíčků NuGet k nahrání a obnovení binárních balíčků pohodlným způsobem.
Informační kanály balíčků NuGet mají možnosti řízení přístupu, díky kterým jsou ideální pro omezení přístupu k prostředkům ve vaší organizaci nebo pracovní skupině. Informační kanály NuGet podporují několik poskytovatelů cloudového úložiště, jako jsou Azure Artifacts a registr balíčků GitHubu.
V tomto kurzu se naučíte:
Požadavky
- Terminál
- vcpkg
- Informační kanál balíčku NuGet nebo pokud ne, účet Azure DevOps, který se má sledovat
- Terminál
- vcpkg
- Informační kanál balíčku NuGet nebo pokud ne, účet Azure DevOps, který se má sledovat
- Balíček
mono
nainstalovaný ve vašem systému
1. Nastavení informačního kanálu NuGet
Tento krok přeskočte, pokud už máte existující informační kanál balíčků NuGet.
Podle pokynů nastavte informační kanál NuGet Azure Artifacts.
Můžete také použít libovolného jiného poskytovatele informačního kanálu Balíčků NuGet.
2. Přidání zdroje NuGet
Poznámka:
V Linuxu je potřeba mono
spustit nuget.exe
. Můžete nainstalovat mono
pomocí správce systémových balíčků vaší distribuce.
Vcpkg získá vlastní kopii spustitelného nuget.exe
souboru, který používá při operacích binární mezipaměti. Tento kurz používá vcpkg-acquired nuget.exe
. Příkaz vcpkg fetch nuget
vypíše umístění souboru vcpkg-acquired nuget.exe
, v případě potřeby stáhne spustitelný soubor.
Spuštěním následujícího příkazu přidejte informační kanál NuGet jako zdroj, nahraďte <feed name>
libovolným názvem podle vašeho výběru a <feed url>
adresou URL informačního kanálu NuGet.
.$(vcpkg fetch nuget) sources add -Name <feed name> -Source <feed url>
Spuštěním následujícího příkazu načtěte cestu ke spustitelnému souboru NuGet:
vcpkg fetch nuget
Tím se zobrazí výstup, který vypadá nějak takto C:\path\to\nuget.exe
. Poznamenejte si tuto cestu.
Pomocí cesty získané z předchozího kroku spusťte následující příkaz:
C:\path\to\nuget.exe sources add -Name <feed name> -Source <feed url>
mono `vcpkg fetch nuget | tail -n 1` sources add -Name <feed name> -Source <feed url>
Zadání klíče rozhraní API
Někteří poskytovatelé vyžadují, abyste balíčky NuGet odeslali do informačního kanálu pomocí klíče rozhraní API. Například Služba GitHub Packages vyžaduje jako klíč rozhraní API token PAT (Pat) GitHubu; pokud používáte Azure Artifacts, je AzureDevOps
místo toho klíč rozhraní API.
Pomocí následujícího příkazu nastavte klíč rozhraní API pro všechny balíčky nabízené do informačního kanálu NuGet a nahraďte <apiKey>
ho klíčem rozhraní API vašeho informačního kanálu.
.$(vcpkg fetch nuget) setapikey <apikey> -Source <feed url>
Spuštěním následujícího příkazu načtěte cestu ke spustitelnému souboru NuGet:
vcpkg fetch nuget
Tím se zobrazí výstup, který vypadá nějak takto C:\path\to\nuget.exe
. Poznamenejte si tuto cestu.
Pomocí cesty získané z předchozího kroku spusťte následující příkaz:
C:\path\to\nuget.exe setapikey <apikey> -Source <feed url>
mono `vcpkg fetch nuget | tail -n 1` setapikey <apiKey> -Source <feed url>
Zadání přihlašovacích údajů pro ověřování
Informační kanál NuGet může vyžadovat ověření, které vám umožní stahovat a nahrávat balíčky. V takovém případě můžete zadat přihlašovací údaje tak, že je přidáte jako parametry do nuget sources add
příkazu.
Příklad:
nuget sources add -Name my-packages -Source https://my.nuget.feed/vcpkg-cache/index.json -UserName myusername -Password mypassword -StorePasswordInClearText
Někteří poskytovatelé, jako je Azure Artifacts, můžou vyžadovat různé metody ověřování. Další informace najdete v článku o ověření v privátních informačních kanálech NuGet.
nuget.config
Použití souboru
Případně můžete použít nuget.config
soubor ke konfiguraci zdrojů NuGet podle následující šablony:
nuget.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="defaultPushSource" value="<feed url>" />
</config>
<apiKeys>
<add key="<feed url>" value="<apikey>" />
</apiKeys>
<packageSources>
<clear />
<add key="<feed name>" value="<feed url>" />
</packageSources>
<packageSourcesCredentials>
<<feed name>>
<add key="Username" value="<username>" />
<add key="Password" value="<password>" />
</<feed name>>
</packageSourcesCredentials>
</configuration>
Příklad souboru nuget.config
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="defaultPushSource" value="https://contoso.org/packages/" />
</config>
<apikeys>
<add key="https://contoso.org/packages/" value="encrypted_api_key" />
</apikeys>
<packageSources>
<clear />
<add key="Contoso" value="https://contoso.org/packages/" />
</packageSources>
<packageSourcesCredentials>
<Contoso>
<add key="Username" value="user" />
<add key="Password" value="..." />
</Contoso>
</packageSourcesCredentials>
</configuration>
Vcpkg vyžaduje, abyste v nuget.config
souboru nastavili defaultPushSource
adresu URL informačního kanálu NuGet jako výchozí zdroj pro nabízení binárních balíčků.
Pokud balíčky nahráváte do informačního kanálu NuGet Azure Artifacts, použijte AzureDevOps
ho jako klíč rozhraní API zdroje spuštěním nuget setApiKey AzureDevOps -Source <feed url> -ConfigFile <path to nuget.config>
příkazu .
V opačném případě nahraďte hodnotu správným klíčem rozhraní API informačního kanálu, pokud ho máte.
Přidejte zdroj, <clear />
který bude ignorovat ostatní dříve nakonfigurované hodnoty. Pokud chcete, můžete v tomto souboru definovat více zdrojů, použít <add key="<feed name>" value="<feed url>" />
položku pro každý zdroj.
Spuštěním následujícího příkazu přidejte zdroj NuGet pomocí nuget.config
souboru, nahraďte <path to nuget.config>
cestou k souboru nuget.config
:
.$(vcpkg fetch nuget) sources add -ConfigFile <path to nuget.config>
Spuštěním následujícího příkazu načtěte cestu ke spustitelnému souboru NuGet:
vcpkg fetch nuget
Tím se zobrazí výstup, který vypadá nějak takto C:\path\to\nuget.exe
. Poznamenejte si tuto cestu.
Pomocí cesty získané z předchozího kroku spusťte následující příkaz:
C:\path\to\nuget.exe sources add -ConfigFile <path to nuget.config>
mono `vcpkg fetch nuget | tail -n 1` sources add -ConfigFile <path to nuget.config>
3. Konfigurace vcpkg pro použití informačního kanálu NuGet
Nastavte proměnnou VCPKG_BINARY_SOURCES
prostředí následujícím způsobem:
$env:VCPKG_BINARY_SOURCES="clear;nuget,<feed url>,readwrite"
Pokud používáte nuget.config
soubor, udělejte toto:
$env:VCPKG_BINARY_SOURCES="clear;nugetconfig,<path to nuget.config>"
set "VCPKG_BINARY_SOURCES=clear;nuget,<feed url>,readwrite"
Pokud používáte nuget.config
soubor, udělejte toto:
set "VCPKG_BINARY_SOURCES=clear;nugetconfig,<path to nuget.config>"
Poznámka:
Nastavení VCPKG_BINARY_SOURCES
pomocí export
příkazu ovlivní pouze aktuální relaci prostředí. Pokud chcete tuto změnu provést trvale napříč relacemi, budete muset příkaz přidat export
do skriptu profilu vašeho prostředí (např ~/.bashrc
. nebo ~/.zshrc
).
export VCPKG_BINARY_SOURCES="clear;nuget,<feed url>,readwrite"
Pokud používáte nuget.config
soubor, udělejte toto:
export VCPKG_BINARY_SOURCES="clear;nugetconfig,<path to nuget.config>"
A to je vše! Vcpkg teď nahraje nebo obnoví balíčky z informačního kanálu NuGet.
Další kroky
Tady jsou další úkoly, které můžete vyzkoušet: