sql >> Database teknologi >  >> RDS >> Database

Værtspakke på Chokolade

I denne artikel vil vi tage et kort kig på de vigtigste stadier i skabelsen af ​​chokoladepakker.

Forudsætninger

Før du går i gang med oprettelsen af ​​en chokoladepakke, skal du sørge for at:

  • have Chocolatey installeret;
  • læs Hvad er chokoladepakker? afsnittet i Chokoladedokumentationen;
  • ved, hvordan en pakke fungerer. Specifikt er du klar over, at:

    • en pakke indeholder en *.nuspe c fil. Dette definerer pakken. (Docs);
    • en pakke kan indeholde indlejret software;
    • en pakke kan indeholde et installationsscript.

En chokoladepakke består af følgende hovedelementer:

  1. Et *.nuspec fil. Dette trin er obligatorisk.
  2. chocolateyInstall.ps1 fil.
  3. Alle programfiler, der skal inkluderes (det anbefales stærkt, at du er forfatteren i dette tilfælde, eller du har ret til at distribuere filer). *.exe filer i pakken/downloadet til pakkemappen fra chocolateyInstall.ps1 vil have et link til kommandolinjen.
  4. chocolateyUninstall.ps1 for at afinstallere din pakke.

Jeg anbefaler dig at tage et kig på videoen, der viser pakkeoprettelsen. Bemærk venligst, at videoen har et lidt forældet indhold af chocolateyInstall.ps1 . I øjeblikket chocolateyInstall.ps1 ser sådan ud:

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

Install-ChocolateyPackage $packageName $fileType $silentArgs $url

De chokoladeagtige vinduer Pakkemanager bruger den samme infrastruktur som NuGet, det vil sige Visual Studio pakke manager. Derfor er pakkerne baseret på de samme principper, herunder at pakkebeskrivelsen (specifikationen) skal gemmes i XML-formatet, kendt som Nuspec.

*.nuspec fil indeholder sådanne grundlæggende oplysninger som version, licens, vedligeholder og pakkeafhængigheder. Chokolade indeholder yderligere valgfri funktionalitet øverst på NuGet *.nuspec fil. Den bedste måde at bestemme de aktuelt understøttede funktioner på er således at oprette en testpakke og se på den genererede *.nuspec-fil:

choco new testpackage

Bemærk: Hvis din pakke bruger den nyligt introducerede funktionalitet, vil du måske inkludere en afhængighed, der angiver den laveste Chocolatey-version, der understøtter den nødvendige funktionalitet. Ellers kan installationen mislykkes for de brugere, der har en ældre Chocolatey-version installeret.

Du kan angive Chokolade-afhængigheden som enhver anden afhængighed, f.eks.:

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

Hurtig startvejledning

  1. Generer en ny pakke :
    • Den choco new -h kommandoen hjælper dig med at konfigurere pakkeindstillingerne.
    • Når du har fundet ud af alle muligheder, kan du fortsætte med at generere din skabelon.
  2. Rediger skabelonen i overensstemmelse hermed :
    • cd package-name
    • Rediger package-name. nuspec-konfigurationsfil.
    • Rediger ./tools/chocolateyInstall.ps1 installer script.
      • Sørg for, at du har konfigureret installationsprogrammets lydløs tilstand. Brug Universal Silent Switch Finder, som er tilgængelig som en Choco-pakke:choco install ussf.
      • Du skal gemme dine filer med UTF–8 tegnkodning uden BOM.
  3. Byg pakken :
    • Stadig i pakkebiblioteket.
    • choco pack
      • “Oprettet pakkenavn.1.1.0.nupkg”.
  4. Test pakken :
    • Test skal udføres på en virtuel maskine.
    • Brug:
        i din pakkemappe
      • choco install package-name -s
        package-name er id-elementet i nuspec
  5. Skub pakken til Chocolatey community-pakkelageret:
    • Få en Chocolatey-konto:
      • Tilmeld dig.
    • Kopiér API-nøglen fra din 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 udelades, hvis den er den eneste i mappen.

Eksempler

Her er nogle simple eksempler.

Bemærk :De angivne eksempler kan kræve en opdatering af kontrolsummer og nyere pakkekoncepter. Kør choco new når du opretter pakker, da den indeholder de mest opdaterede noter.

chocolateyInstall.ps1 til .exe-installationsprogram

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

Install-ChocolateyPackage $name $installerType $silentArgs $url

Bemærk :Du skal konfigurere kommandolinjekontakten for at gøre installationsprogrammet lydløst, f.eks. ./VERYSILENT Switchnavnet varierer afhængigt af installationsprogrammet.

chocolateyInstall.ps1 til .msi-installationsprogram

BEMÆRK :Du skal bevare kompatibiliteten med Posh v2. Ikke alle understøttede operativsystemer er på Posh v2 (og heller ikke OOB med Posh v3+). Den bedste praksis er at arbejde med den bredeste kompatibilitet af systemer derude.

$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

Test din pakke

Bemærkning 1 :Jeg anbefaler kraftigt at udføre test på en virtuel maskine, ikke på din fungerende maskine.

Bemærkning 2 :Pakketestningen kan udføres på samme måde som verifikatoren. Tag et kig på Chocolatey Verifier Testing.

For at teste den nybyggede pakke skal du åbne en kommandolinjeskal og navigere til den mappe, hvor *.nupkg filen er placeret. Indtast derefter følgende:

choco install packageName -dv -s .

Denne kommando vil installere pakken direkte fra din kilde. Hvis du finder ting, du skal rette, skal du bruge --force (-f) for at fjerne og geninstallere pakken fra den opdaterede *.nupkg . Hvis du specifikt tester chocolateyBeforeModify.ps1 , skal du teste opgraderingen og afinstallere scenarierne. Du skal installere en version af pakken med denne fil først, fordi lignende t0 afinstaller,før modificere kører fra den installerede pakke, ikke den pakke, du installerer (som chocolateyInstall.ps1 gør).

Bemærkning 1 :Force --force (-f) bør kun bruges under den efterfølgende test, når du geninstallerer den samme pakke, som du har ændret og ikke bør bruges i scenarier med almindelig brug. Det skal bestemt ikke være i scripts.

Bemærkning 2 :Hvis du bruger en Semver bindestreg i din pakkeversion (såsom 1.0.0-beta ), skal du bruge -pre kontakt. Ellers får du beskeden "Kan ikke finde pakken ' fejl fra choco-installationen. Du kan også angive -version 1.0.0-beta for at installere den nøjagtige version.

Prikketegnet peger på den aktuelle mappe. Du kan angive flere mapper adskilt af et semikolon.

Skub din pakke

For at skubbe din pakke, efter du har bygget og testet den, skal du skrive følgende:

choco push packageName.nupkg -s sourceLocation

Hvor:

  • packageName.nupkg er navnet på den nupkg, der blev bygget med et versionsnummer som en del af pakkenavnet;
  • sourceLocation er placeringen af ​​den kilde, du vil sende til (f.eks. -s https://chocolatey.org/ for Chocolatey-fællesskabsfeedet).

Du skal have en API-nøgle til https://chocolatey.org/ sættet. Tag et kig på choco push.

Du kan også logge ind på chocolatey.org og uploade din pakke derfra (anbefales ikke til pakkerne over 2 MB).

Referencer

Du kan bruge følgende ressourcer til at finde ud af mere om oprettelsen og distributionen af ​​en chokoladepakke:

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

  1. Masseopdatering i C#

  2. Funktionelle enheder

  3. Gendan database fra nødtilstand i SQL Server

  4. GROUP BY / aggregeret funktionsforvirring i SQL