Chocolatey, gestionnaire de paquets Windows par script PowerShell
Chocolatey est un gestionnaire de paquets Open Source pour Windows. Il diffère de WAPT au sens où l’objectif initial de Chocolatey n’a pas pour objectif principal de créer un dépôt dans le réseau local, pour minimiser la consommation de la bande passante, lors de l’installation de logiciels tiers. Avec Chocolatey, il s’agit de télécharger et d’exécuter un script dont l’objet est d’aller chercher un fichier EXE, un MSI, un ZIP sur le site de l’éditeur ou assimilé, afin de procéder à une installation la plus silencieuse possible.
Chocolatey exige, pour qu’il fonctionne sur votre machine, que vous disposiez de :
- Windows 7+ / Windows Server 2003+
- PowerShell 2+
- .NET Framework 4+
Installation de Chocolatey
L’installation se fait à l’aide de la commande en PowerShell :
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Côté pare-feu, il faut que vous autorisiez au préalable le Tcp/443 en sortie au niveau du port distant pour la commande powershell.exe.
Règles de pare-feu
Une fois installé, Chocolatey exige que vous ouvriez en sortie les ports distants Tcp/80 et Tcp/443, de manière à autoriser les téléchargements au niveau des processus :
- C:\ProgramData\chocolatey\choco.exe
- C:\ProgramData\chocolatey\bin\choco.exe
La recherche de paquets à partir du site chocolatey.org
Pour connaître la présence et les informations de version sur les paquets pris en charge par Chocolatey, vous pouvez passer différentes requêtes :
Utilisation de Chocolatey
Je vous ai compilé des exemples de commande à utiliser avec Chocolatey :
choco install vlc | Installation de VLC |
choco info vlc | Informations de version sur VLC |
choco search vlc | Recherche de l’expression VLC dans les paquets |
choco list vlc | Liste des paquets relatifs à VLC (identique à search) |
choco uninstall putty.portable | Désinstallation de la version portable de Putty |
choco upgrade chocolatey | Mise à jour du paquet Chocolatey |
choco upgrade all |
Mise à jour de tous les paquets Chocolatey |
choco config set cacheLocation e:\chocolatey | Change l’emplacement du répertoire de téléchargement des applications |
choco search all | Affiche tous les scripts d’installation |
Commandes spéciales d’installation pour Firefox et Thunderbird
Pour Thunderbird et Firefox, l’installation de la version française se réalise comme suit à partir de Chocolatey :
- choco install thunderbird-packageParameters « l=fr-FR »
- choco install firefox-packageParameters « l=fr-FR »
Les paquets mis à jour avec succès
Chocolatey installe les dépendances qui sont associées aux paquets installés. Il peut s’agir de KB ou bien d’autres programmes. Pour OBS, Chocolatey a procédé à l’installation d’une nouvelle version de DirectX sur ma machine !
- 7zip
- avidemux
- bleachbit
- calibre
- ccleaner
- cdburnerxp
- cdex
- clamwin
- dbeaver
- filezilla (client)
- filezilla.server
- firebird
- firefox
- flashplayerplugin
- ghostscript
- gpg4win
- greenshot
- javaruntime
- lame
- mixxx
- mpc-hc
- paint.net
- pdfcreator
- pgadmin
- rawtherapee (ajoute la version du dépôt au lieu de faire la mise à jour)
- recuva
- thunderbird
- virtualbox
- vlc
- wincdemu
- winscp
- xnview
Les paquets ne s’étant pas mis à jour
Je ne suis pas parvenu à mettre à jour à partir de Chocolatey les logiciels suivants, souvent du fait qu’il s’agit d’installation online :
- adobereader-update (mise à jour Adobe Reader)
- libreoffice (erreur dans le chemin vers le programme d’installation de la version précédente)
- putty.install (aucune trace du téléchargement de l’installeur)
- utorrent (installation online bloquée par mes règles de pare-feu)
Pour LibreOffice, j’ai rattrapé le coup en lançant l’installation manuellement à partir de l’installeur stocké dans %TEMP%\chocolatey\libreoffice\5.4.0 !
J’ai pas osé…
Comme je l’utilise en production, je n’ai pas osé mettre à jour la version de MariaDB présente sur ma machine.
Les risques
Le risque est qu’un gros malin glisse dans un script un lien vers un fichier ou un dépôt vérolé, comme ce pourrait être le cas, dans l’absolu, pour la gestion des paquets sous Linux ou au niveau de Windows Update.
Changement de répertoire de téléchargement
Afin de partager au niveau de plusieurs postes les téléchargements effectués et de minimiser la bande passante utilisée par Chocolatey, je vous recommande chaudement d’éditer le fichier C:\ProgramData\chocolatey\config\chocolatey.config. Modifiez la directive cacheLocation en pointant sur un lecteur réseau où l’utilisateur chargé d’effectuer le déploiement dispose des droits en lecture / écriture !
<add key="cacheLocation" value="e:\chocolatey" description="Cache location if not TEMP folder. Replaces `$env:TEMP` value." />