sql >> Databasteknik >  >> RDS >> Database

Värdpaket på Chocolatey

I den här artikeln kommer vi att ta en kort titt på de viktigaste stegen i att skapa chokladpaket.

Förutsättningar

Innan du börjar med att skapa ett chokladpaket, se till att du behöver:

  • ha Chocolatey installerat;
  • läs Vad är chokladpaket? avsnitt av Chokladdokumentationen;
  • vet hur ett paket fungerar. Specifikt är du medveten om att:

    • ett paket innehåller en *.nuspe c-fil. Detta definierar paketet. (Dokument);
    • ett paket kan innehålla inbäddad programvara;
    • ett paket kan innehålla ett installationsskript.

Ett chokladpaket består av följande huvudelement:

  1. Ett *.nuspec fil. Detta steg är obligatoriskt.
  2. chocolateyInstall.ps1 fil.
  3. Alla programfiler som ska inkluderas (det rekommenderas starkt att du är författaren i det här fallet eller så har du rätt att distribuera filer). *.exe filer i paketet/nedladdade till paketmappen från chocolateyInstall.ps1 kommer att ha en länk till kommandoraden.
  4. chocolateyUninstall.ps1 för att avinstallera ditt paket.

Jag rekommenderar dig att ta en titt på videon som visar hur paketet skapades. Observera att videon har lite föråldrat innehåll i chocolateyInstall.ps1 . För tillfället,chocolateyInstall.ps1 ser ut så här:

$packageName = 'windirstat
$fileType = 'exe'
$url = 'http://prdownloads.sourceforge.net/windirstat/windirstat1_1_2_setup.exe'
$silentArgs = '/S'

Install-ChocolateyPackage $packageName $fileType $silentArgs $url

Chokladiga Windows pakethanteraren använder samma infrastruktur som NuGet, det vill säga Visual Studio pakethanterare. Därför är paketen baserade på samma principer, inklusive den som säger att paketbeskrivningen (specifikationen) måste lagras i XML-formatet, känt som Nuspec.

*.nuspec filen innehåller sådan grundläggande information som version, licens, underhållare och paketberoenden. Chocolatey innehåller ytterligare valfria funktioner högst upp i NuGet *.nuspec fil. Det bästa sättet att fastställa vilka funktioner som för närvarande stöds är att skapa ett testpaket och titta på den genererade *.nuspec-filen:

choco new testpackage

Obs! Om ditt paket använder den nyligen introducerade funktionen, kanske du vill inkludera ett beroende som anger den lägsta Chocolatey-versionen som stöder den nödvändiga funktionen. Annars kan installationen misslyckas för de användare som har en äldre Chocolatey-version installerad.

Du kan ange chokladberoendet som alla andra beroenden, t.ex.:

<dependencies> 
<dependency id="chocolatey" version="0.9.8.21" /> 
</dependencies>

Snabbstartsguide

  1. Generera ett nytt paket :
    • choco new -h kommandot hjälper dig att ställa in paketalternativen.
    • När du har listat ut alla alternativ kan du fortsätta med att skapa din mall.
  2. Redigera mallen i enlighet med detta :
    • cd package-name
    • Redigera package-name. nuspec-konfigurationsfil.
    • Redigera ./tools/chocolateyInstall.ps1 installera skript.
      • Se till att du har konfigurerat installationsprogrammets tysta läge. Använd Universal Silent Switch Finder, som är tillgängligt som ett Choco-paket:choco install ussf.
      • Du måste spara dina filer med teckenkodningen UTF–8 utan BOM.
  3. Skapa paketet :
    • Fortfarande i paketkatalogen.
    • choco pack
      • “Skapat paketnamn.1.1.0.nupkg framgångsrikt”.
  4. Testa paketet :
    • Testning bör utföras på en virtuell maskin.
    • Använd:
        i din paketkatalog
      • choco install package-name -s
        package-name är id-elementet i nuspec
  5. Push paketet till Chocolatey community-paketförrådet:
    • Skaffa ett Chocolatey-konto:
      • Registrera dig.
    • Kopiera API-nyckeln från ditt Chocolatey-konto.
    • 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 fil kan utelämnas om den är den enda i katalogen.

Exempel

Här är några enkla exempel.

Obs :De angivna exemplen kan kräva en uppdatering av kontrollsummor och nyare paketkoncept. Kör choco new när du skapar paket eftersom det innehåller de mest uppdaterade anteckningarna.

chocolateyInstall.ps1 för .exe-installationsprogram

$name = 'Package Name'
$installerType = 'exe'
$url  = 'http://path/to/download/installer.exe'
$silentArgs = '/VERYSILENT'

Install-ChocolateyPackage $name $installerType $silentArgs $url

Obs :Du måste ställa in kommandoradsomkopplaren för att göra installationsprogrammet tyst, t.ex. ./VERYSILENT Switchnamnet varierar beroende på installationsprogrammet.

chocolateyInstall.ps1 for .msi installer

OBS :Du måste behålla kompatibiliteten med Posh v2. Inte alla operativsystem som stöds är på Posh v2 (inte heller kommer OOB med Posh v3+). Den bästa praxisen är att arbeta med den bredaste kompatibiliteten för system där ute.

$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

Testar ditt paket

Anmärkning 1 :Jag rekommenderar starkt att du utför testning på en virtuell maskin, inte på din fungerande maskin.

Anmärkning 2 :Pakettestningen kan göras på samma sätt som verifieraren. Ta en titt på Chocolatey Verifier Testing.

För att testa det nybyggda paketet, öppna ett kommandoradsskal och navigera till katalogen där *.nupkg filen finns. Skriv sedan följande:

choco install packageName -dv -s .

Detta kommando kommer att installera paketet direkt från din källa. Om du hittar saker du behöver fixa, använd --force (-f) för att ta bort och installera om paketet från den uppdaterade *.nupkg . Om du specifikt testar chocolateyBeforeModify.ps1 måste du testa uppgraderingen och avinstallera scenarierna. Du måste installera en version av paketet med den här filen först eftersom liknande t0 avinstallera,före modifiera körs från det installerade paketet, inte paketet du installerar (som chocolateyInstall.ps1 gör).

Anmärkning 1 :Force --force (-f) bör endast användas under efterföljande testning när du installerar om samma paket som du har ändrat och inte borde användas i scenarier för vanlig användning. Det borde definitivt inte finnas i skript.

Anmärkning 2 :Om du använder ett Semver-streck i din paketversion (som 1.0.0-beta ), måste du använda -pre växla. Annars får du "Kan inte hitta paketet ' fel från choco-installationen. Du kan också ange -version 1.0.0-beta för att installera den exakta versionen.

Punkttecknet pekar på den aktuella katalogen. Du kan ange flera kataloger separerade med semikolon.

Push ditt paket

För att pusha ditt paket efter att du har byggt och testat det, skriv följande:

choco push packageName.nupkg -s sourceLocation

Var:

  • packageName.nupkg är namnet på nupkg som byggdes med ett versionsnummer som en del av paketnamnet;
  • sourceLocation är platsen för källan du vill skicka till (t.ex. -s https://chocolatey.org/ för Chocolate-gemenskapsflödet).

Du måste ha en API-nyckel för https://chocolatey.org/ set. Ta en titt på choco push.

Du kan också logga in på chocolatey.org och ladda upp ditt paket därifrån (rekommenderas inte för paket över 2 MB).

Referenser

Du kan använda följande resurser för att ta reda på mer om skapandet och distributionen av ett chokladpaket:

  • https://chocolatey.org/docs/create-packages
  • https://github.com/chocolatey-community/chocolatey-test-environm Choklad ent

  1. Mina favoritpostgreSQL-tillägg - del ett

  2. hur duplicerar jag mina sql-resultat?

  3. Automatiserad testning av uppgraderingsprocessen för MySQL/MariaDB/Percona Server

  4. Hämta databas eller någon annan fil från den interna lagringen med hjälp av run-as