Homebrew installe les logiciels que macOS (ou Linux) n'a pas, en une seule
commande. Ce gestionnaire de paquets télécharge, compile si nécessaire, et
installe plus de 10 000 formules (outils CLI) et casks (applications graphiques).
Avec brew bundle, vous pouvez sauvegarder votre configuration complète dans
un fichier Brewfile et la restaurer sur une nouvelle machine en quelques
minutes. Homebrew 5.0 apporte la vérification des attestations SBOM et améliore
les performances sur Apple Silicon.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Installer Homebrew sur macOS (Intel/Apple Silicon) et Linux
- Gérer vos paquets : installer, mettre à jour, supprimer
- Sauvegarder et restaurer votre configuration avec
brew bundle - Analyser les dépendances avec
brew depsetbrew uses - Gérer les services (bases de données, serveurs) avec
brew services - Optimiser votre installation et résoudre les problèmes courants
Fonctionnement de Homebrew
Section intitulée « Fonctionnement de Homebrew »Homebrew installe chaque paquet dans un répertoire qui lui est propre, le
Cellar, puis crée des liens symboliques vers le répertoire bin du préfixe
pour le rendre appelable. Cette séparation permet de conserver plusieurs
versions côte à côte et de désinstaller sans laisser de fichiers dispersés dans
le système. Le vocabulaire de l'outil tient en trois mots, détaillés juste
après le schéma.
Homebrew repose sur trois concepts clés :
| Concept | Description | Exemple |
|---|---|---|
| Formule | Paquet CLI (outil en ligne de commande) | htop, git, node |
| Cask | Application graphique macOS | visual-studio-code, firefox |
| Tap | Dépôt externe de formules | homebrew/cask-fonts |
Où sont stockés les paquets ?
- macOS Apple Silicon :
/opt/homebrew/Cellar/ - macOS Intel :
/usr/local/Cellar/ - Linux :
/home/linuxbrew/.linuxbrew/Cellar/
Installation de Homebrew
Section intitulée « Installation de Homebrew »L'installation officielle passe par le script install.sh, qui crée
l'arborescence Homebrew et réclame des droits administrateur. Une fois le
script terminé, rien ne fonctionne encore : il reste à charger
brew shellenv depuis votre fichier de configuration de shell, faute de quoi
la commande brew reste introuvable. Le préfixe d'installation change
selon la plateforme, choisissez l'onglet correspondant à la vôtre.
L'installation nécessite les Xcode Command Line Tools. macOS 11 (Big Sur) ou supérieur est recommandé.
-
Installer les outils de développement
Fenêtre de terminal xcode-select --installUne boîte de dialogue apparaît pour confirmer l'installation.
-
Installer Homebrew
L'installateur officiel s'exécute normalement en une ligne, ce qui revient à lancer un script distant sans l'avoir lu. Téléchargez-le d'abord, inspectez-le, puis exécutez la copie locale :
Fenêtre de terminal curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh -o install-homebrew.shless install-homebrew.sh # relire avant d'exécuter/bin/bash install-homebrew.sh -
Configurer le PATH
Pour Apple Silicon (M1/M2/M3/M4) :
Fenêtre de terminal echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrcsource ~/.zshrcPour Intel :
Fenêtre de terminal echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zshrcsource ~/.zshrc -
Vérifier l'installation
Fenêtre de terminal brew doctor# Your system is ready to brew.
Sur Linux, Homebrew s'installe dans /home/linuxbrew/.linuxbrew. Vous aurez
besoin de curl, git et des outils de compilation.
-
Installer les prérequis
Sur Debian/Ubuntu :
Fenêtre de terminal sudo apt update && sudo apt install -y build-essential curl git procpsSur Fedora :
Fenêtre de terminal sudo dnf groupinstall -y 'Development Tools'sudo dnf install -y curl git procps-ng -
Installer Homebrew
L'installateur officiel s'exécute normalement en une ligne, ce qui revient à lancer un script distant sans l'avoir lu. Téléchargez-le d'abord, inspectez-le, puis exécutez la copie locale :
Fenêtre de terminal curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh -o install-homebrew.shless install-homebrew.sh # relire avant d'exécuter/bin/bash install-homebrew.sh -
Configurer le PATH
Pour bash :
Fenêtre de terminal echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrcsource ~/.bashrcPour zsh :
Fenêtre de terminal echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.zshrcsource ~/.zshrc -
Vérifier l'installation
Fenêtre de terminal brew doctor# Your system is ready to brew.
Commandes essentielles
Section intitulée « Commandes essentielles »Ces commandes couvrent 90% des usages quotidiens. Homebrew utilise une syntaxe
simple : brew <action> <paquet>.
Installer un paquet
Section intitulée « Installer un paquet »Homebrew télécharge en priorité une bottle, c'est-à-dire un binaire déjà
compilé pour votre plateforme : d'où le mot Pouring dans la sortie. La
compilation depuis les sources n'intervient que si aucune bottle ne correspond
à votre système.
brew install htop# ==> Pouring htop--3.4.1.arm64_sonoma.bottle.tar.gz# 🍺 /opt/homebrew/Cellar/htop/3.4.1: 13 files, 597.3KBPour les applications graphiques macOS, ajoutez --cask :
brew install --cask visual-studio-codeRechercher un paquet
Section intitulée « Rechercher un paquet »brew search interroge le catalogue local, celui que rafraîchit
brew update : une formule publiée récemment reste invisible tant que ce
catalogue n'a pas été mis à jour.
brew search python# ==> Formulae# python@3.11 python@3.12 python@3.13 micropython ipythonObtenir les informations d'un paquet
Section intitulée « Obtenir les informations d'un paquet »brew info affiche la version stable, le chemin d'installation quand le paquet
est présent, et ses dépendances.
brew info htop# ==> htop: stable 3.4.1 (bottled)# Improved top (interactive process viewer)# https://htop.dev/# Installed: /opt/homebrew/Cellar/htop/3.4.1Mettre à jour Homebrew et les paquets
Section intitulée « Mettre à jour Homebrew et les paquets »Deux commandes à ne pas confondre : brew update rafraîchit le catalogue
des formules, brew upgrade met à jour les paquets installés. Lancer la
seconde sans la première ne trouvera jamais de nouvelle version.
# Mettre à jour le catalogue des formulesbrew update
# Voir les paquets obsolètesbrew outdated
# Mettre à jour tous les paquetsbrew upgrade
# Mettre à jour un paquet spécifiquebrew upgrade htopSupprimer un paquet
Section intitulée « Supprimer un paquet »brew uninstall ne retire que le paquet nommé : ses dépendances restent en
place jusqu'à ce que brew autoremove les repère comme orphelines.
brew uninstall htopPour supprimer aussi les dépendances orphelines :
brew autoremoveLister les paquets installés
Section intitulée « Lister les paquets installés »brew leaves est la plus utile de ces variantes : elle isole ce que vous avez
installé explicitement du reste, tiré automatiquement comme dépendance.
# Tous les paquetsbrew list
# Seulement les formules (CLI)brew list --formula
# Seulement les casks (GUI)brew list --cask
# Paquets "feuilles" (installés explicitement, pas en dépendance)brew leavesNettoyer les anciennes versions
Section intitulée « Nettoyer les anciennes versions »Homebrew conserve les anciennes versions après une mise à jour. Pour libérer de l'espace :
# Simuler le nettoyage (dry-run)brew cleanup -n# Would remove: /opt/homebrew/Cellar/node/20.10.0 (1,234 files, 89MB)
# Nettoyer effectivementbrew cleanupRésumé des commandes de base
Section intitulée « Résumé des commandes de base »Ce tableau rassemble les commandes de la section, à garder sous la main le temps que les réflexes s'installent.
| Action | Commande |
|---|---|
| Installer un paquet CLI | brew install <paquet> |
| Installer une app GUI | brew install --cask <app> |
| Rechercher | brew search <terme> |
| Informations | brew info <paquet> |
| Mettre à jour le catalogue | brew update |
| Mettre à jour les paquets | brew upgrade |
| Supprimer | brew uninstall <paquet> |
| Lister les paquets | brew list |
| Nettoyer | brew cleanup |
| Diagnostic | brew doctor |
Sauvegarder et restaurer avec Brewfile
Section intitulée « Sauvegarder et restaurer avec Brewfile »brew bundle permet de sauvegarder votre configuration complète dans un
fichier déclaratif appelé Brewfile. C'est essentiel pour :
- Configurer rapidement une nouvelle machine
- Versionner votre configuration dans un dotfiles repo
- Partager une configuration d'équipe
Créer un Brewfile
Section intitulée « Créer un Brewfile »brew bundle dump inspecte l'état courant de la machine et écrit le résultat
dans un Brewfile du répertoire courant ; il refuse d'écraser un fichier
existant sans l'option --force.
# Générer le Brewfile depuis les paquets installésbrew bundle dump# Fichier Brewfile créé dans le répertoire courantLe fichier généré ressemble à :
# Brewfiletap "homebrew/bundle"tap "homebrew/cask-fonts"
# CLI toolsbrew "git"brew "htop"brew "node"brew "python@3.12"
# GUI applicationscask "visual-studio-code"cask "firefox"cask "docker"
# Fontscask "font-fira-code"Restaurer depuis un Brewfile
Section intitulée « Restaurer depuis un Brewfile »La restauration est idempotente : les paquets déjà présents sont ignorés, seuls les manquants sont installés.
# Installer tous les paquets du Brewfilebrew bundle install
# Ou simplementbrew bundleVérifier la cohérence
Section intitulée « Vérifier la cohérence »brew bundle cleanup supprime tout ce qui n'est pas déclaré dans le
Brewfile. Passez systématiquement par --dry-run d'abord, la suppression ne
se rejoue pas en arrière.
# Voir ce qui serait installé sans rien fairebrew bundle check
# Lister les paquets installés mais absents du Brewfilebrew bundle cleanup --dry-run
# Supprimer ces paquets excédentairesbrew bundle cleanupAnalyser les dépendances
Section intitulée « Analyser les dépendances »Comprendre les dépendances est crucial pour le nettoyage et le diagnostic. Homebrew fournit plusieurs commandes pour visualiser les relations entre paquets.
Voir les dépendances d'un paquet
Section intitulée « Voir les dépendances d'un paquet »brew deps liste les dépendances d'une formule, qu'elles soient installées ou
non sur la machine.
brew deps htop# lm-sensors# ncursesAfficher l'arbre des dépendances
Section intitulée « Afficher l'arbre des dépendances »L'option --tree restitue la hiérarchie et montre quelle dépendance en amène
une autre.
brew deps --tree htop# htop# ├── ncurses# └── lm-sensorsVoir tous les paquets qui dépendent d'un autre
Section intitulée « Voir tous les paquets qui dépendent d'un autre »brew uses --installed répond à la question inverse : qu'est-ce qui cesserait
de fonctionner si je supprimais ce paquet.
brew uses --installed ncurses# htopCette commande est utile avant de désinstaller un paquet partagé.
Lister les paquets orphelins
Section intitulée « Lister les paquets orphelins »Les paquets "feuilles" sont ceux que vous avez installés explicitement (pas en tant que dépendance) :
brew leavesPour voir les dépendances qui ne sont plus nécessaires :
brew autoremove --dry-runGérer les services
Section intitulée « Gérer les services »Sur macOS, brew services utilise launchd pour démarrer des services au
login. C'est pratique pour les bases de données, serveurs web, etc.
# Lister tous les services disponiblesbrew services list# Name Status User File# postgresql stopped# redis started bob ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
# Démarrer un servicebrew services start postgresql
# Arrêter un servicebrew services stop postgresql
# Redémarrer un servicebrew services restart postgresql
# Démarrer au boot (avec sudo)sudo brew services start postgresqlGérer les dépôts externes (Taps)
Section intitulée « Gérer les dépôts externes (Taps) »Les taps sont des dépôts Git contenant des formules supplémentaires. Par
défaut, Homebrew utilise homebrew/core et homebrew/cask.
Lister les taps installés
Section intitulée « Lister les taps installés »brew tap sans argument liste les dépôts actuellement enregistrés sur la
machine.
brew tap# homebrew/caskAjouter un tap
Section intitulée « Ajouter un tap »Ajouter un tap clone son dépôt Git en local, et les formules qu'il contient s'exécuteront avec votre compte : réservez l'opération à des sources de confiance.
brew tap hashicorp/tapUne fois ajouté, vous pouvez installer les formules de ce tap :
brew install hashicorp/tap/terraformSupprimer un tap
Section intitulée « Supprimer un tap »brew untap retire le dépôt mais laisse en place les paquets déjà installés
depuis ce tap ; ils ne recevront simplement plus de mise à jour.
brew untap hashicorp/tapTaps utiles
Section intitulée « Taps utiles »Ces dépôts reviennent le plus souvent dans une configuration DevOps. Un tap
n'apporte que des formules supplémentaires : il ne remplace pas
homebrew/core, qui reste actif par défaut.
| Tap | Description |
|---|---|
homebrew/cask-fonts | Polices pour développeurs |
hashicorp/tap | Outils HashiCorp (Terraform, Vault) |
aws/tap | AWS CLI et outils |
mongodb/brew | MongoDB Community |
Gérer plusieurs versions
Section intitulée « Gérer plusieurs versions »Homebrew n'est pas un gestionnaire de versions : il installe une version par
formule. La cohabitation repose sur trois mécanismes distincts, des formules
suffixées @version, le gel d'un paquet avec pin, et le basculement des
liens symboliques avec link et unlink. Cette mécanique suffit pour figer un
interpréteur système, mais elle reste globale à la machine : elle ne sait pas
changer de version selon le répertoire courant.
Installer une version spécifique
Section intitulée « Installer une version spécifique »Certains paquets proposent plusieurs versions avec le suffixe @version :
brew search python# python@3.11 python@3.12 python@3.13
brew install python@3.11Figer une version (pin)
Section intitulée « Figer une version (pin) »Pour empêcher la mise à jour d'un paquet :
# Bloquer les mises à jourbrew pin python@3.12
# Voir les paquets bloquésbrew list --pinned# python@3.12
# Débloquerbrew unpin python@3.12Basculer entre versions
Section intitulée « Basculer entre versions »Si plusieurs versions sont installées, utilisez brew link :
# Désactiver la version actuellebrew unlink python@3.12
# Activer une autre versionbrew link python@3.11 --forceDépannage
Section intitulée « Dépannage »Presque tous les incidents Homebrew se rangent dans trois familles : un PATH
non configuré, des permissions incorrectes sur le préfixe d'installation,
et un catalogue de formules périmé. brew doctor détecte les deux premières et
affiche directement la commande de correction.
Commandes de diagnostic
Section intitulée « Commandes de diagnostic »Ces quatre commandes suffisent à qualifier la panne avant de chercher plus loin.
# Vérifier la configurationbrew doctor
# Voir la configuration actuellebrew config
# Recréer les liens symboliquesbrew link <paquet> --overwrite
# Réinstaller un paquet corrompubrew reinstall <paquet>Problèmes courants et solutions
Section intitulée « Problèmes courants et solutions »Repérez votre message d'erreur dans la colonne de gauche : la manœuvre exacte figure en face.
| Symptôme | Cause probable | Solution |
|---|---|---|
command not found: brew | PATH non configuré | Relancer le shellenv (voir installation) |
Permission denied | Problème de propriétaire | sudo chown -R $(whoami) /opt/homebrew |
Error: No available formula | Catalogue obsolète | brew update |
Bottle not found | Version de macOS non supportée | brew install --build-from-source <pkg> |
Cask requires macOS | Cask sur Linux | Les casks sont réservés à macOS |
already installed | Paquet déjà présent | brew reinstall <pkg> si besoin |
Réparer une installation cassée
Section intitulée « Réparer une installation cassée »Ces commandes réparent l'installation sans toucher aux paquets.
brew update-reset réaligne les dépôts Git internes de Homebrew sur leur état
distant, ce qui annule au passage toute modification locale des formules.
# Réinitialiser Homebrew (garde les paquets)brew update-reset
# Nettoyer le cachebrew cleanup --prune=all
# Vérifier et réparer les liensbrew doctorBonnes pratiques
Section intitulée « Bonnes pratiques »Trois réflexes suffisent à garder une installation Homebrew saine dans la durée. Ils portent sur la provenance de ce que vous installez, sur l'espace disque consommé, et sur votre capacité à reconstruire la même machine ailleurs.
Sécurité
Section intitulée « Sécurité »Un tap tiers exécute du code Ruby sur votre poste, avec votre compte : c'est le principal point de vigilance.
- Vérifiez les formules avant d'ajouter un tap tiers
- Ne jamais utiliser sudo avec brew (sauf pour
brew services) - Les attestations SBOM (Homebrew 5.0+) vérifient l'intégrité des bottles
Performance
Section intitulée « Performance »Homebrew ne ralentit pas avec le temps, mais il grossit : chaque mise à jour laisse l'ancienne version dans le Cellar.
- Nettoyez régulièrement :
brew cleanuplibère l'espace disque - Utilisez
brew bundlepour des installations reproductibles - Évitez d'installer tout : chaque paquet consomme des ressources
Organisation
Section intitulée « Organisation »Le Brewfile est le seul document qui déclare ce que la machine est censée
contenir ; sans lui, la configuration n'existe que dans votre mémoire.
- Un Brewfile par projet si les dépendances diffèrent
- Versionnez votre Brewfile dans votre repo dotfiles
- Documentez les taps externes que vous utilisez
À retenir
Section intitulée « À retenir »brew installinstalle des outils CLI,--caskpour les apps GUIbrew bundle dumpsauvegarde votre configuration dans unBrewfilebrew bundle installrestaure tout depuis ce fichierbrew deps --treevisualise les dépendances d'un paquetbrew servicesgère les services (bases de données, serveurs)brew pinbloque les mises à jour d'un paquet spécifiquebrew doctordiagnostique les problèmes de configuration
D'autres outils ?
Section intitulée « D'autres outils ? »Deux compléments naturels, selon que vous cherchiez à fixer des versions projet par projet ou à isoler complètement un environnement d'exécution.
FAQ : questions fréquentes
Section intitulée « FAQ : questions fréquentes »Les questions les plus fréquentes sur Homebrew, avec une réponse directe : gratuité, comparaison avec apt et dnf, différence entre formule et cask, sauvegarde par Brewfile et confusion brew update / brew upgrade.
Le gestionnaire de paquets de macOS (et Linux)
Homebrew est un gestionnaire de paquets open source pour macOS et Linux. La commandebrew installe en une seule ligne plus de 10 000 paquets : des formules (outils en ligne de commande) et des casks (applications graphiques macOS).brew install htop
Homebrew pose chaque paquet dans un répertoire dédié, le Cellar, puis crée des liens symboliques vers le bin du préfixe. Cette séparation permet de conserver plusieurs versions et de désinstaller proprement. On ne lance jamais brew avec sudo.Gratuit et open source (BSD-2-Clause)
Homebrew est gratuit et open source sous licence BSD à deux clauses. Il n'y a ni abonnement, ni édition payante, ni quota : vous installez autant de paquets que vous voulez.Le projet donne accès à plus de 10 000 formules et casks maintenus par la communauté. Son financement repose sur des dons et du sponsoring (via des plateformes comme GitHub Sponsors), pas sur la vente du logiciel. Les paquets eux-mêmes conservent la licence de leur éditeur d'origine.Deux niveaux de gestion de paquets
Sur Linux, Homebrew ne remplace pas apt ou dnf : il les complète.| Critère | Homebrew | apt / dnf |
|---|---|---|
| Périmètre | Préfixe dédié (/home/linuxbrew) |
Système entier |
| Droits | Sans sudo |
Avec sudo |
| Fraîcheur | Souvent plus récent | Suit la distribution |
| Plateformes | macOS et Linux | Linux seulement |
sudo. Sur un serveur, on garde apt/dnf pour la base et Homebrew pour les outils de dernière version.Télécharger, relire, exécuter
L'installateur officiel s'exécute d'ordinaire en une ligne, ce qui revient à lancer un script distant sans le lire. Mieux vaut le télécharger, le relire, puis exécuter la copie locale.curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh -o install-homebrew.sh
less install-homebrew.sh
/bin/bash install-homebrew.sh
Chargez ensuite l'environnement selon la plateforme, puis rechargez le shell :# Apple Silicon (M1 à M4)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
Vérifiez avec brew doctor, qui doit afficher Your system is ready to brew.. Le préfixe est /opt/homebrew sur Apple Silicon, /usr/local sur Mac Intel et /home/linuxbrew/.linuxbrew sur Linux.Formule, cask, tap
Le vocabulaire de Homebrew tient en trois mots.| Terme | Ce que c'est | Exemple |
|---|---|---|
| Formule | Paquet en ligne de commande | git, htop, node |
| Cask | Application graphique macOS | visual-studio-code, firefox |
| Tap | Dépôt externe de paquets | hashicorp/tap |
brew install htop # formule (CLI)
brew install --cask visual-studio-code # cask (GUI, macOS)
Une formule s'installe sur macOS et Linux. Un cask installe une application graphique et n'existe que sur macOS. Un tap est un dépôt Git tiers qui ajoute des paquets absents de homebrew/core ; il exécute du code avec votre compte, réservez-le aux sources de confiance.Le Brewfile, votre configuration reproductible
brew bundle dump inspecte la machine et écrit tous les paquets installés dans un fichier Brewfile déclaratif.brew bundle dump # génère le Brewfile
tap "hashicorp/tap"
brew "git"
brew "htop"
cask "visual-studio-code"
Versionnez ce fichier avec vos dotfiles, puis restaurez à l'identique sur une autre machine :brew bundle install # installe tout le Brewfile
L'opération est idempotente : les paquets déjà présents sont ignorés, seuls les manquants sont installés. C'est le moyen le plus fiable de reconstruire un poste.Deux commandes à ne pas confondre
| Commande | Action |
|---|---|
brew update |
Rafraîchit le catalogue des formules |
brew upgrade |
Met à jour les paquets installés |
brew upgrade sans brew update d'abord ne trouvera jamais de nouvelle version : le catalogue local n'a pas été rafraîchi, Homebrew ignore donc qu'une mise à jour existe.brew update # 1. rafraîchir le catalogue
brew outdated # 2. voir ce qui est périmé
brew upgrade # 3. tout mettre à jour
brew upgrade htop # ou un seul paquet
Enchaînez toujours update puis upgrade.Plus d'infos
Section intitulée « Plus d'infos »Les ressources officielles pour approfondir et suivre les évolutions de Homebrew.
- Site officiel Homebrew, Documentation et téléchargement
- Homebrew Formulae, Catalogue des paquets
- Homebrew Bundle, Documentation Brewfile
- Releases Homebrew, Notes de version