Dans cet article, nous allons revenir brièvement sur les étapes clés de la création d'un package Chocolatey.
Prérequis
Avant de vous lancer dans la création d'un package Chocolatey, assurez-vous que vous devez :
- faire installer Chocolatey ;
- lisez la section Qu'est-ce qu'un package chocolaté ? section de la documentation de Chocolatey ;
- savoir comment fonctionne un package. Plus précisément, vous savez que :
- un paquet contient un *.nuspe fichier c. Cela définit le package. (Documents) ;
- un package peut contenir un logiciel intégré ;
- un package peut contenir un script d'installation.
- un paquet contient un *.nuspe fichier c. Cela définit le package. (Documents) ;
Un package Chocolatey comprend les principaux éléments suivants :
- Un *.nuspec dossier. Cette étape est obligatoire.
- La chocolateyInstall.ps1 fichier.
- Tout fichier d'application à inclure (il est fortement recommandé que vous soyez l'auteur dans ce cas ou que vous ayez le droit de distribuer les fichiers). Le *.exe les fichiers du package/téléchargés dans le dossier du package à partir de chocolateyInstall.ps1 auront un lien vers la ligne de commande.
- chocolatyUninstall.ps1 pour désinstaller votre package.
Je vous recommande de jeter un oeil à la vidéo montrant la création du package. Veuillez noter que la vidéo présente un contenu un peu obsolète de chocolateyInstall.ps1 . Pour le moment, chocolateyInstall.ps1 ressemble à ceci :
$packageName = 'windirstat $fileType = 'exe' $url = 'http://prdownloads.sourceforge.net/windirstat/windirstat1_1_2_setup.exe' $silentArgs = '/S' Install-ChocolateyPackage $packageName $fileType $silentArgs $url
Les Fenêtres Chocolatées Le gestionnaire de packages utilise la même infrastructure que NuGet, c'est-à-dire Visual Studio directeur chargé d'emballage. Par conséquent, les packages sont basés sur les mêmes principes, dont celui stipulant que la description (spécification) du package doit être stockée au format XML, appelé Nuspec.
Le *.nuspec Le fichier contient des informations de base telles que la version, la licence, le responsable et les dépendances du package. Chocolatey inclut des fonctionnalités optionnelles supplémentaires tout en haut du NuGet *.nuspec dossier. Ainsi, la meilleure façon de déterminer les fonctionnalités actuellement prises en charge consiste à créer un package de test et à consulter le fichier *.nuspec généré :
choco new testpackage
Remarque : Si votre package utilise la fonctionnalité récemment introduite, vous souhaiterez peut-être inclure une dépendance indiquant la version la plus basse de Chocolatey qui prend en charge la fonctionnalité requise. Sinon, l'installation pourrait échouer pour les utilisateurs qui ont installé une ancienne version de Chocolatey.
Vous pouvez indiquer la dépendance Chocolatey comme n'importe quelle autre dépendance, par exemple :
<dependencies> <dependency id="chocolatey" version="0.9.8.21" /> </dependencies>
Guide de démarrage rapide
- Générer un nouveau package :
- Le
choco new -h
La commande vous aidera à configurer les options du package. - Une fois que vous avez compris toutes les options, vous pouvez continuer à générer votre modèle.
- Le
- Modifier le modèle en conséquence :
cd package-name
- Modifiez le
package-name.
fichier de configuration nuspec. - Modifiez le
./tools/chocolateyInstall.ps1
script d'installation.- Assurez-vous d'avoir configuré le mode silencieux du programme d'installation. Utilisez Universal Silent Switch Finder, disponible sous forme de package Choco :
choco install ussf.
- Vous devez enregistrer vos fichiers avec le codage de caractères UTF–8 sans BOM.
- Assurez-vous d'avoir configuré le mode silencieux du programme d'installation. Utilisez Universal Silent Switch Finder, disponible sous forme de package Choco :
- Créer le package :
- Toujours dans le répertoire du package.
choco pack
- "Nom-paquet créé avec succès.1.1.0.nupkg".
- Tester le package :
- Les tests doivent être effectués sur une machine virtuelle.
- Dans votre répertoire de packages, utilisez :
choco install package-name -s
package-name
est l'élément id dans le nuspec
- Poussez le paquet au dépôt de paquets de la communauté Chocolatey :
- Obtenir un compte Chocolatey :
- Inscrivez-vous.
- Copiez la clé API de votre compte 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/
– le *.nupkg fichier peut être omis s'il est le seul dans le répertoire.
- Obtenir un compte Chocolatey :
Exemples
Voici quelques exemples simples.
Remarque :Les exemples fournis peuvent nécessiter une mise à jour des sommes de contrôle et des concepts de package plus récents. Exécutez choco new
lors de la création de packages car il contient les notes les plus récentes.
chocolateyInstall.ps1 pour le programme d'installation .exe
$name = 'Package Name' $installerType = 'exe' $url = 'http://path/to/download/installer.exe' $silentArgs = '/VERYSILENT' Install-ChocolateyPackage $name $installerType $silentArgs $url
Remarque :Vous devez configurer le commutateur de ligne de commande pour rendre le programme d'installation silencieux, par ex. ./VERYSILENT
Le nom du commutateur varie en fonction de l'installateur.
chocolateyInstall.ps1 pour le programme d'installation .msi
REMARQUE :Vous devez maintenir la compatibilité avec Posh v2. Tous les systèmes d'exploitation pris en charge ne sont pas sur Posh v2 (ni OOB avec Posh v3 +). La meilleure pratique consiste à travailler avec la plus large compatibilité de systèmes disponibles.
$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
Tester votre package
Remarque 1 :Je recommande fortement d'effectuer les tests sur une machine virtuelle, et non sur votre machine de travail.
Remarque 2 :Le test du paquet peut être fait de la même manière que le vérificateur. Jetez un œil à Chocolatey Verifier Testing.
Pour tester le package nouvellement construit, ouvrez un shell de ligne de commande et accédez au répertoire où se trouve le fichier *.nupkg fichier est localisé. Tapez ensuite ce qui suit :
choco install packageName -dv -s .
Cette commande installera le package directement à partir de votre source. Si vous trouvez des choses que vous devez corriger, utilisez --force (-f)
pour supprimer et réinstaller le package à partir du *.nupkg mis à jour . Si vous testez spécifiquement chocolateyBeforeModify.ps1 , vous devez tester les scénarios de mise à niveau et de désinstallation. Vous devez d'abord installer une version du package avec ce fichier car similaire à la désinstallation, avant de modifier s'exécute à partir du package installé, pas du package que vous installez (comme chocolateyInstall.ps1 fait).
Remarque 1 :Force --force (-f)
doit être utilisé uniquement lors des tests ultérieurs lorsque vous réinstallez le même package que vous avez modifié et ne devrait pas être utilisé dans des scénarios d'utilisation régulière. Cela ne devrait certainement pas être dans les scripts.
Remarque 2 :Si vous utilisez un tiret Semver dans votre version de package (comme 1.0.0-beta ), vous devez utiliser le -pre
interrupteur. Sinon, vous obtiendrez le message "Impossible de trouver le paquet ' erreurs de l'installation de choco. Vous pouvez également spécifier -version 1.0.0-beta
pour installer la version exacte.
Le caractère point pointe vers le répertoire courant. Vous pouvez spécifier plusieurs répertoires séparés par un point-virgule.
Poussez votre paquet
Pour pousser votre package après l'avoir construit et testé, tapez ce qui suit :
choco push packageName.nupkg -s sourceLocation
Où :
packageName.nupkg
est le nom du nupkg qui a été construit avec un numéro de version dans le nom du paquet ;sourceLocation
est l'emplacement de la source vers laquelle vous voulez pousser (par exemple-s https://chocolatey.org/
pour le flux de la communauté Chocolatey).
Vous devez disposer d'une clé API pour l'ensemble https://chocolatey.org/. Jetez un œil à choco push.
Vous pouvez également vous connecter à chocolatey.org et télécharger votre package à partir de là (non recommandé pour les packages de plus de 2 Mo).
Références
Vous pouvez utiliser les ressources suivantes pour en savoir plus sur la création et la distribution d'un package Chocolatey :
- https://chocolatey.org/docs/create-packages
- https://github.com/chocolatey-community/chocolatey-test-environm Chocolat ent