Développeur FullStack & Devops

Notes et mémos techniques

Chocolatey et Homebrew Packages Managers pour Windows et MAC OS

Qu'est ce qu'un package manager

Un package manager (gestionnaire de packages) est un outil la plupart du temps en ligne de commande (CLI), qui permet de chercher, télécharger et d'installer des packages simplement (exécutables ou librairies) sur votre système (Linux, Windows ou MAC OS).

Les utilisateurs de Linux Debian (et donc d'Ubuntu mais aussi Raspbian) connaissent depuis bien longtemps la commande apt (Advanced Packaging Tool). Heureusement les utilisateurs de Windows et MAC ont maintenant des outils similaires :

logo chocolatey 150x150 Chocolatey pour Windows (choco pour les intimes) Voici la page vous permettant de chercher un package chocolatey : https://chocolatey.org/packages et le référentiel des commandes

logo homebrew 150x150 Homebrew est l'équivalent de choco pour MAC OS Homebrew possède un vocabulaire propre et un système de packages (les formulas) reposant sur Git pour la distribution et si vous souhaitez savoir  si un programme est disponible (et trouver des infos sur le package) à travers Homebrew, voici un "index" : brewformulas.org et le référentiel des commandes

Intérêts

Un Package manager (choco, homebrew, apt, aptitude etc.) est le genre d'outil qui devient vite indispensable tellement il facilite la vie, mais voici les plus grands avantages:

  • ils nous facilitent la vie et leurs prise en main est simplissime :)
  • permettent d'installer facilement et rapidement les freewares les plus répandus: pas besoin de google => fouiller le site de l'éditeur pour la section download => télécharger l'exe => installer en clickclickant...
  • avoir des logiciels à priori "clean" de spyware et autres, car validés avant leurs mises à dispositions

Chocolatey

Nous allons prendre exemple d'une installation d'une version spécifique de NodeJs sur notre machine Windows.

Installer Choco sur votre machine en exécutant sous un cmd DOS en administrateur:

@"%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"

plus d'infos sur l'installation de choco

Chercher avec choco search

Lister les package installés en local avec :

choco list --local-only # ou choco list -li

Nous allons tout d'abord chercher si le package est disponible via la commande choco search j'ai ici réduit les listes de résultats par soucis de clarté:

PS C:\WINDOWS\system32> choco search nodejs
Chocolatey v0.10.8
nodejs 9.1.0 [Approved]
nodejs.install 9.1.0 [Approved]
nodejs.commandline 6.11.0 [Approved]
yarn 1.3.2 [Approved] Downloads cached for licensed users
nodejs-lts 8.9.1 [Approved]

Il est possible d'obtenir un affichage un peu plus clair et concis avec l'option -r :

PS C:\WINDOWS\system32> choco search nodejs -r
nodejs|9.1.0
nodejs.install|9.1.0
nodejs.commandline|6.11.0
yarn|1.3.2
nodejs-lts|8.9.1

Nous voyons que le package s'appel "exactement" NodeJs ce qui réduit notre champs de réponses avec l'option -e :

PS C:\WINDOWS\system32> choco search nodejs -re
Parsing -re resulted in error (converted to warning):
Cannot bundle unregistered option '-e'.
Chocolatey v0.10.8
nodejs|9.1.0

Pour une version spécifique (ex: 8.x) c'est l'option -a qui vous listera toutes les versions de NodesJs existantes:

PS C:\WINDOWS\system32> choco search nodejs -are
Chocolatey v0.10.8
nodejs|9.1.0
nodejs|9.0.0
nodejs|8.9.1
nodejs|8.9.0.20171107
nodejs|8.9.0

Installer avec choco install

Il suffit simplement d'installer la version voulue par ex la 8.9.1 avec la commande choco install :

choco install nodejs --version 8.9.1

(bien sure ceci n'est qu'un exemple, dans le cas précis de NodeJs je vous conseille de passer par NVM pour pouvoir gérer au mieux les différentes versions de Node sur votre machine.

Mettre à jour avec choco upgrade

Il est possible de mettre à jour n'importe quel package (y compris chocolatey lui même) par la commande choco upgrade , mais aussi faire une mise à jour de tout ce que vous avez déjà installé sur votre machine via chocolatey par un  choco upgrade all -y  (attention cela peut prendre du temps).

Pour mettre à jour une application en particulier commencer par lister tous ceux installées en local:

choco list --local-only

puis utiliser choco upgrade (par ex pour Filezilla) choco upgrade -y filezilla

Supprimer un package

utiliser simplement

choco uninstall nom_du_package

Exemple sous Mac OS avec Homebrew

Pour installer le support du système de fichier ext4 sur son MAC (utilisant Fuse), il suffit de taper dans le terminal:

brew install homebrew/fuse/ext4fuse

Homebew a introduit un nouvel outil Cask qui permet d'installer des applications avec GUI tels que VLC, dropbox, firefox, keepassx pour n'en citer que quelques uns. Un brew search  nous indiquera  clairement que vlc est installable via cask :

mac:~ $ brew search vlc
==> Casks
vlc ✔

il faudra donc l'installer via (ne pas oublier l'argument cask):

mac:~ $ brew cask install vlc
.....
? vlc was successfully installed!
apt
chocolatey
brew
windows
linux
package-manager
tutoriel
powershell
productivite
rédigé le 05/02/17, mis à jour le 02/02/22 par Behrouze
A proposCheat SheetsOutilsVidéos