sql >> Databáze >  >> RDS >> Database

Hostingový balíček na Chocolatey

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 Chocolatey se skládá z následujících hlavních prvků:

  1. A *.nuspec soubor. Tento krok je povinný.
  2. The chocolateyInstall.ps1 soubor.
  3. 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.
  4. 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

  1. 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.
  2. 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.
  3. 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“.
  4. 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
  5. 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ý.

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

  1. Škodlivé, všudypřítomné mýty o výkonu serveru SQL

  2. Jak opravit:JSON_VALUE vrací NULL s dlouhými řetězci (SQL Server)

  3. Proč je používání kurzorů na serveru SQL považováno za špatný postup?

  4. Jaká je doporučená velikost dávky pro SqlBulkCopy?