V tomto článku se krátce podíváme na klíčové fáze vytváření balíčku Chocolatey.
Předpoklady
Než začnete s vytvářením balíčku Chocolatey, ujistěte se, že potřebujete:
- mají nainstalovanou aplikaci Chocolatey;
- přečtěte si Co jsou čokoládové balíčky? sekce dokumentace Chocolatey;
- znát, jak balíček funguje. Konkrétně víte, že:
- balíček obsahuje *.nuspe c soubor. Toto definuje balíček. (Dokumenty);
- balíček může obsahovat vložený software;
- balíček může obsahovat instalační skript.
- balíček obsahuje *.nuspe c soubor. Toto definuje balíček. (Dokumenty);
Balíček Chocolatey se skládá z následujících hlavních prvků:
- A *.nuspec soubor. Tento krok je povinný.
- The chocolateyInstall.ps1 soubor.
- Jakékoli soubory aplikace, které je třeba zahrnout (v tomto případě důrazně doporučujeme, abyste byli autorem nebo máte právo soubory distribuovat). Soubor *.exe soubory v balíčku/stažené do složky balíčku z chocolateyInstall.ps1 budou mít odkaz na příkazový řádek.
- chocolateyUninstall.ps1 pro odinstalaci balíčku.
Doporučuji se podívat na video, které ukazuje tvorbu balíčku. Upozorňujeme, že video obsahuje trochu zastaralý obsah chocolateyInstall.ps1 . Momentálně chocolateyInstall.ps1 vypadá následovně:
$packageName = 'windirstat $fileType = 'exe' $url = 'http://prdownloads.sourceforge.net/windirstat/windirstat1_1_2_setup.exe' $silentArgs = '/S' Install-ChocolateyPackage $packageName $fileType $silentArgs $url
Okna čokolády správce balíčků používá stejnou infrastrukturu jako NuGet, tedy Visual Studio správce balíčků. Proto jsou balíčky založeny na stejných principech, včetně toho, který uvádí, že popis balíčku (specifikace) musí být uložen ve formátu XML, známém jako Nuspec.
Soubor *.nuspec obsahuje základní informace, jako je verze, licence, správce a závislosti na balíčku. Chocolatey obsahuje další volitelné funkce na samém vrcholu NuGet *.nuspec soubor. Nejlepším způsobem, jak zjistit aktuálně podporované funkce, je tedy vytvořit testovací balíček a podívat se na vygenerovaný soubor *.nuspec:
choco new testpackage
Poznámka: Pokud váš balíček používá nedávno zavedenou funkcionalitu, možná budete chtít zahrnout závislost označující nejnižší verzi Chocolatey, která požadovanou funkcionalitu podporuje. V opačném případě by mohla instalace selhat uživatelům, kteří mají nainstalovanou starší verzi Chocolatey.
Závislost Chocolatey můžete označit jako jakoukoli jinou závislost, např.:
<dependencies> <dependency id="chocolatey" version="0.9.8.21" /> </dependencies>
Rychlý průvodce
- Vygenerujte nový balíček :
choco new -h
příkaz vám pomůže nastavit možnosti balíčku.- Jakmile zjistíte všechny možnosti, můžete pokračovat ve generování šablony.
- Upravte odpovídajícím způsobem šablonu :
cd package-name
- Upravte
package-name.
konfigurační soubor nuspec. - Upravte soubor
./tools/chocolateyInstall.ps1
instalační skript.- Ujistěte se, že jste nakonfigurovali tichý režim instalačního programu. Použijte Universal Silent Switch Finder, který je k dispozici jako balíček Choco:
choco install ussf.
- Soubory musíte uložit s kódováním znaků UTF–8 bez kusovníku.
- Ujistěte se, že jste nakonfigurovali tichý režim instalačního programu. Použijte Universal Silent Switch Finder, který je k dispozici jako balíček Choco:
- Sestavte balíček :
- Stále v adresáři balíčku.
choco pack
- „Název-balíčku byl úspěšně vytvořen.1.1.0.nupkg“.
- Otestujte balíček :
- Testování by mělo být prováděno na virtuálním počítači.
- V adresáři balíčku použijte:
choco install package-name -s
package-name
je prvek id v nuspec
- Zatlačte balíček do úložiště komunitních balíčků Chocolatey:
- Získejte účet Chocolatey:
- Zaregistrujte se.
- Zkopírujte klíč API ze svého účtu Chocolatey.
choco apikey -k [API_KEY_HERE] -source https://push.chocolatey.org/
choco push package-name.1.1.0.nupkg -s https://push.chocolatey.org/
– *.nupkg soubor lze vynechat, pokud je v adresáři jediný.
- Získejte účet Chocolatey:
Příklady
Zde je několik jednoduchých příkladů.
Poznámka :Uvedené příklady mohou vyžadovat aktualizaci kontrolních součtů a novějších konceptů balíčků. Spusťte choco new
při vytváření balíčků, protože obsahuje nejaktuálnější poznámky.
chocolateyInstall.ps1 pro instalační program .exe
$name = 'Package Name' $installerType = 'exe' $url = 'http://path/to/download/installer.exe' $silentArgs = '/VERYSILENT' Install-ChocolateyPackage $name $installerType $silentArgs $url
Poznámka :Musíte nastavit přepínač příkazového řádku, aby byl instalátor tichý, např. ./VERYSILENT
Název přepínače se liší v závislosti na instalačním programu.
chocolateyInstall.ps1 pro instalační program .msi
POZNÁMKA :Musíte zachovat kompatibilitu s Posh v2. Ne každý podporovaný operační systém je na Posh v2 (ani není OOB s Posh v3+). Nejlepší praxí je pracovat s nejširší kompatibilitou systémů, které existují.
$packageName = 'Package Name' $installerType = 'msi' $url = 'http://path/to/download/installer_x86.msi' $url64 = 'http://path/to/download/installer_x64.msi' $silentArgs = '/quiet' $validExitCodes = @(0,3010) Install-ChocolateyPackage $packageName $installerType $silentArgs $url $url64 -validExitCodes $validExitCodes
Testování balíčku
Poznámka 1 :Důrazně doporučuji provádět testování na virtuálním počítači, nikoli na vašem pracovním počítači.
Poznámka 2 :Testování balíčku lze provést stejným způsobem jako ověřovatel. Podívejte se na Testování ověřovače čokolády.
Chcete-li otestovat nově vytvořený balíček, otevřete shell příkazového řádku a přejděte do adresáře, kde je *.nupkg soubor se nachází. Poté zadejte následující:
choco install packageName -dv -s .
Tento příkaz nainstaluje balíček přímo z vašeho zdroje. Pokud najdete věci, které potřebujete opravit, použijte --force (-f)
odeberte a znovu nainstalujte balíček z aktualizovaného *.nupkg . Pokud konkrétně testujete chocolateyBeforeModify.ps1 , musíte otestovat scénáře upgradu a odinstalace. Nejprve musíte nainstalovat verzi balíčku s tímto souborem, protože podobné odinstalování před úpravou spouští z nainstalovaného balíčku, nikoli z balíčku, který instalujete (např. chocolateyInstall.ps1 ano).
Poznámka 1 :Force --force (-f)
by měl být použit pouze během následného testování, když znovu instalujete stejný balíček, který jste změnili, a neměli byste používat ve scénářích běžného používání. Rozhodně by to nemělo být ve skriptech.
Poznámka 2 :Pokud ve verzi balíčku používáte pomlčku Semver (například 1.0.0-beta ), musíte použít -pre
přepínač. V opačném případě se zobrazí „Nelze najít balíček “ chyby z instalace choco. Můžete také zadat -version 1.0.0-beta
nainstalovat přesnou verzi.
Znak tečka ukazuje na aktuální adresář. Můžete zadat více adresářů oddělených středníkem.
Zatlačte svůj balíček
Chcete-li balíček odeslat poté, co jste jej sestavili a otestovali, zadejte následující:
choco push packageName.nupkg -s sourceLocation
Kde:
packageName.nupkg
je název nupkg, který byl sestaven s číslem verze jako součástí názvu balíčku;sourceLocation
je umístění zdroje, do kterého chcete odeslat (např.-s https://chocolatey.org/
pro komunitní zdroj Chocolatey).
Pro sadu https://chocolatey.org/ musíte mít klíč API. Podívejte se na choco push.
Můžete se také přihlásit na stránku chocolatey.org a nahrát svůj balíček odtud (nedoporučuje se pro balíčky větší než 2 MB).
Odkazy
K získání dalších informací o vytvoření a distribuci balíčku Chocolatey můžete použít následující zdroje:
- https://chocolatey.org/docs/create-packages
- https://github.com/chocolatey-community/chocolatey-test-environm Čokoláda ent