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 :

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 :

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 :

Les paquets mis à jour avec succès

Chocolatey, gestionnaire de paquets pour Windows par script PowerShellChocolatey 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 !

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 :

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." />

Windows  / Formateur Powershell PowerShell Windows