Mac

Synchroniser ses apps Homebrew entre deux Macs

3 min de lecture
Synchroniser ses apps Homebrew entre deux Macs
🤖 Résumé réalisé par IA
* Homebrew a un outil intégré pour ça : brew bundle * Un Brewfile versionné dans Git ou synchro via Syncthing, et c'est réglé

J’ai deux Macs. Un pro au bureau, un perso à la maison. Et je me suis retrouvé trop souvent à installer un truc sur l’un pour réaliser qu’il manquait sur l’autre.

Homebrew a un outil intégré pour ça. Pas besoin de script custom ni d’app tierce.

Le Brewfile, c’est quoi

brew bundle génère un fichier Brewfile qui liste tout ce qui est installé via Homebrew sur ta machine : les formulas (outils CLI), les casks (apps graphiques), les taps (repos tiers) et même les apps du Mac App Store si tu utilises mas.

Ça ressemble à ça :

tap "homebrew/bundle"
brew "git"
brew "node"
brew "ffmpeg"
cask "raycast"
cask "iterm2"
cask "visual-studio-code"
mas "Things 3", id: 904280696

Un fichier texte. Lisible. Versionnable. Exactement ce qu’on veut.

Exporter l’état de ton Mac

Sur ton Mac principal, une commande :

brew bundle dump --file=~/Brewfile --describe --force

Le --describe ajoute un commentaire à côté de chaque ligne pour s’y retrouver. Le --force écrase le fichier s’il existe déjà.

Si tu veux aussi les apps du Mac App Store, installe mas avant :

brew install mas

Installer sur l’autre Mac

Tu copies le Brewfile sur ton second Mac (Git, Syncthing, AirDrop, peu importe) et tu lances :

brew bundle --file=~/Brewfile

Homebrew installe tout ce qui manque. Ce qui est déjà là est ignoré.

Garder ça synchro

Le plus simple : mettre le Brewfile dans un repo Git. Un commit quand tu ajoutes ou supprimes quelque chose, un pull sur l’autre Mac, brew bundle, c’est fait.

Si tu as déjà Syncthing ou un NAS avec de la synchro, tu peux aussi poser le fichier dans un dossier partagé. Le Brewfile se propage automatiquement.

Les commandes utiles au quotidien

brew bundle check te dit si ton Mac est synchro avec le Brewfile. Exit 0 = tout est bon.

brew bundle cleanup liste ce qui est installé sur ta machine mais absent du Brewfile. Pratique pour repérer les trucs que tu as installé à la main et oublié d’ajouter. Avec --force, ça désinstalle direct.

Pour régénérer le Brewfile après des changements, je relance simplement brew bundle dump --force. C’est idempotent.

Nouveau Mac : tout réinstaller en 5 minutes

C’est là que le Brewfile prend tout son sens. Tu viens de déballer un Mac neuf, tu ouvres le Terminal, et :

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
git clone https://github.com/ton-user/dotfiles.git ~/dotfiles
brew bundle --file=~/dotfiles/Brewfile

Trois commandes. Homebrew s’installe, ton repo se clone, et toutes tes apps s’installent. Tu pars faire un café, tu reviens, c’est prêt.

J’ai changé de Mac pro l’année dernière. Sans le Brewfile, j’aurais passé une demi-journée à retrouver et réinstaller mes apps une par une. Là, c’était plié en 10 minutes.

Ce que je fais concrètement

Mon Brewfile vit dans mon repo de dotfiles, avec ma config Zsh et mes aliases. A chaque brew install ou brew install --cask, je régénère le Brewfile et je commit. C’est devenu un réflexe.

Le jour où un Mac me lâche ou qu’Apple sort une machine qui me fait craquer, je sais que je suis à trois commandes de retrouver mon environnement complet. C’est pas sexy, mais ça marche.

Des questions ? Les commentaires sont là pour ça ⬇️

Commentaires

Me soutenir