L’outil brew est un outil populaire sous Mac pour la gestion de paquets. Il fonctionne sous Mac OS (son principal usage) mais aussi sous Linux.
Nous allons voir comment l’utiliser au mieux, afin de préparer le passage d’un mac à un autre.
Edit 2026: j’utilise maintenant en plus l’outil devbox pour gérer mes commandes CLI globales, et stow pour gérer mes dotfiles. Je conserve brew pour les applications Mac OS uniquement.
Brew bundle
La commande brew bundle permet d’exporter dans un fichier la liste des paquets installés.
brew bundle dump
crée un fichier du type :
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-fonts"
tap "homebrew/cask-versions"
tap "homebrew/core"
brew "act"
brew "bandwhich"
cask "libreoffice"
cask "postman"
cask "visual-studio-code"
Ce fichier contient tous les tap (les repos de brew pour les paquets qui ne sont pas dans le repo standard), les outils type CLI et les applications graphiques Mac OS (installés avec brew cask).
Il devient très facile d’exporter ce fichier sur un autre mac et installer cette suite d’outils :
brew bundle
L’idéal est alors de stocker ce fichier Brewfile sous un repo Git à soi, pour y avoir accès facilement.
On peut aller encore un cran plus loin, en utilisant le pattern dotfiles.
dotfiles
Sous un système Unix-like (comme Mac OS), les fichiers cachés à la racine (dotfiles) sont utilisés pour la configuration des outils.
On peut les conserver et les stocker sous Git, de façon à bénéficier de la même configuration sur plusieurs ordinateurs.
Ce pattern est expliqué ici.
Si l’on créait simplement un répertoire Git à la racine, ce ne serait pas idéal, car il entrerait potentiellement en conflit avec d’autres repos qui sont à la racine.
L’idée est alors d’utiliser un bare repo Git avec un alias.
Voici ma façon de procéder (crédits à Siilwyn):
Edit 2026 : j’utilise maintenant l’outil stow sur mon répertoire dotfiles-public.
Installation
mkdir $HOME/.dotfiles
git init --bare $HOME/.dotfiles
echo "alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'" >> .zshrc
source .zshrc
dotfiles config status.showUntrackedFiles no # Ceci sera ajouté à la config du repo .dotfiles et pas à la config général de git
Réplication
git clone --separate-git-dir=$HOME/.my-dotfiles https://github.com/Siilwyn/my-dotfiles.git my-dotfiles-tmp
rsync --recursive --verbose --exclude '.git' my-dotfiles-tmp/ $HOME/
rm --recursive my-dotfiles-tmp
Usage
dotfiles add Brewfile
dotfiles commit -m "ajout du fichier Brewfile"
dotfiles add .zshrc
dotfiles commit -m "ajout de conf zsh"
dotfiles remote add origin https://github.com/pom421/.dotfiles.git
dotfiles push
Configuration
dotfiles config status.showUntrackedFiles no
Et voila ! 🎉
Nous avons un système qui peut conserver la trace de tous les outils installés et de la configuration de tous ces outils. On peut ensuite les dupliquer sur un mac vierge et l’installer très rapidement.