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 

Commentaires

Merci pour cette mise en jambe.
Une typo s’est glissée choco info vlc au lieu de choco install vlc pour l’installation :-)

Bonjour,

A noter que l’on peut spécifier les versions et autres parfois.

Par exemple:
choco install firefoxesr -packageParameters « l=fr-FR » -x86 -y
Pour installer Firefoxesr en Fr vers. x86

Inconvénient, si vous fait un choco upgrade all, la version basculera vers la version x64 si votre OS la supporte.
(Si quelqu’un a une solution autre que de faire choco upgrade firefoxesr -packageParameters « l=fr-FR » -x86 -y )

Il est aussi possible de verrouiller une version afin qu’un upgrade soit sans effet à l’aide de pin
choco pin add -n=firefoxesr

Il est possible de générer un fichier des programmes/version des logiciels installés sur un poste via Choco.
En powershell:
choco list -lo -r -y | % { « choco install  » + $_.Replace(« | »,  » -version « ) +  » -y » } > Install.ps1

Combiné avec PAexec (plutot que PSexec afin de masquer les identifiants admins) ou Admin Assistant, vous pourrez propager Chocolatey et les installations sur votre parc.

Sous réserve de la sécurité de celui-ci…

Bonjour,
Chocolatey permet aussi d’utiliser ses propres paquets en local.
Pour cela il faut bien entendu installer son propre serveur.
cf. https://chocolatey.org/docs/how-to-set-up-chocolatey-server
Cdlt.

@tigoud

Y a plus simple pour le dépôt local : passer par le paramétrage de la directive cacheLocation dans le fichier C:\ProgramData\chocolatey\config\chocolatey.config, en le faisant pointer vers un lecteur réseau. J’ai amendé l’article ! ;+)

@cloug

Merci. C’est corrigé.

Laisser un commentaire

(requis)

(requis)