Aller au contenu
Outils medium

Homebrew : gérer vos logiciels sur macOS et Linux

14 min de lecture

logo Homebrew

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.

  • 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 deps et brew uses
  • Gérer les services (bases de données, serveurs) avec brew services
  • Optimiser votre installation et résoudre les problèmes courants
Architecture Homebrew : téléchargement depuis les registres, installation dans le Cellar, types de paquets

Homebrew repose sur trois concepts clés :

ConceptDescriptionExemple
FormulePaquet CLI (outil en ligne de commande)htop, git, node
CaskApplication graphique macOSvisual-studio-code, firefox
TapDépôt externe de formuleshomebrew/cask-fonts

Où sont stockés les paquets ?

  • macOS Apple Silicon : /opt/homebrew/Cellar/
  • macOS Intel : /usr/local/Cellar/
  • Linux : /home/linuxbrew/.linuxbrew/Cellar/

L’installation nécessite les Xcode Command Line Tools. macOS 11 (Big Sur) ou supérieur est recommandé.

  1. Installer les outils de développement

    Fenêtre de terminal
    xcode-select --install

    Une boîte de dialogue apparaît pour confirmer l’installation.

  2. Installer Homebrew

    Fenêtre de terminal
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  3. Configurer le PATH

    Pour Apple Silicon (M1/M2/M3/M4) :

    Fenêtre de terminal
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
    source ~/.zshrc

    Pour Intel :

    Fenêtre de terminal
    echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zshrc
    source ~/.zshrc
  4. Vérifier l’installation

    Fenêtre de terminal
    brew doctor
    # Your system is ready to brew.

Ces commandes couvrent 90% des usages quotidiens. Homebrew utilise une syntaxe simple : brew <action> <paquet>.

Fenêtre de terminal
brew install htop
# ==> Pouring htop--3.4.1.arm64_sonoma.bottle.tar.gz
# 🍺 /opt/homebrew/Cellar/htop/3.4.1: 13 files, 597.3KB

Pour les applications graphiques macOS, ajoutez --cask :

Fenêtre de terminal
brew install --cask visual-studio-code
Fenêtre de terminal
brew search python
# ==> Formulae
# python@3.11 python@3.12 python@3.13 micropython ipython
Fenêtre de terminal
brew info htop
# ==> htop: stable 3.4.1 (bottled)
# Improved top (interactive process viewer)
# https://htop.dev/
# Installed: /opt/homebrew/Cellar/htop/3.4.1
Fenêtre de terminal
# Mettre à jour le catalogue des formules
brew update
# Voir les paquets obsolètes
brew outdated
# Mettre à jour tous les paquets
brew upgrade
# Mettre à jour un paquet spécifique
brew upgrade htop
Fenêtre de terminal
brew uninstall htop

Pour supprimer aussi les dépendances orphelines :

Fenêtre de terminal
brew autoremove
Fenêtre de terminal
# Tous les paquets
brew 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 leaves

Homebrew conserve les anciennes versions après une mise à jour. Pour libérer de l’espace :

Fenêtre de terminal
# Simuler le nettoyage (dry-run)
brew cleanup -n
# Would remove: /opt/homebrew/Cellar/node/20.10.0 (1,234 files, 89MB)
# Nettoyer effectivement
brew cleanup
ActionCommande
Installer un paquet CLIbrew install <paquet>
Installer une app GUIbrew install --cask <app>
Rechercherbrew search <terme>
Informationsbrew info <paquet>
Mettre à jour le cataloguebrew update
Mettre à jour les paquetsbrew upgrade
Supprimerbrew uninstall <paquet>
Lister les paquetsbrew list
Nettoyerbrew cleanup
Diagnosticbrew doctor

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
Fenêtre de terminal
# Générer le Brewfile depuis les paquets installés
brew bundle dump
# Fichier Brewfile créé dans le répertoire courant

Le fichier généré ressemble à :

# Brewfile
tap "homebrew/bundle"
tap "homebrew/cask-fonts"
# CLI tools
brew "git"
brew "htop"
brew "node"
brew "python@3.12"
# GUI applications
cask "visual-studio-code"
cask "firefox"
cask "docker"
# Fonts
cask "font-fira-code"
Fenêtre de terminal
# Installer tous les paquets du Brewfile
brew bundle install
# Ou simplement
brew bundle
Fenêtre de terminal
# Voir ce qui serait installé sans rien faire
brew bundle check
# Lister les paquets installés mais absents du Brewfile
brew bundle cleanup --dry-run
# Supprimer ces paquets excédentaires
brew bundle cleanup

Comprendre les dépendances est crucial pour le nettoyage et le diagnostic. Homebrew fournit plusieurs commandes pour visualiser les relations entre paquets.

Fenêtre de terminal
brew deps htop
# lm-sensors
# ncurses
Fenêtre de terminal
brew deps --tree htop
# htop
# ├── ncurses
# └── lm-sensors
Fenêtre de terminal
brew uses --installed ncurses
# htop

Cette commande est utile avant de désinstaller un paquet partagé.

Les paquets “feuilles” sont ceux que vous avez installés explicitement (pas en tant que dépendance) :

Fenêtre de terminal
brew leaves

Pour voir les dépendances qui ne sont plus nécessaires :

Fenêtre de terminal
brew autoremove --dry-run

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.

Fenêtre de terminal
# Lister tous les services disponibles
brew services list
# Name Status User File
# postgresql stopped
# redis started bob ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
# Démarrer un service
brew services start postgresql
# Arrêter un service
brew services stop postgresql
# Redémarrer un service
brew services restart postgresql
# Démarrer au boot (avec sudo)
sudo brew services start postgresql

Les taps sont des dépôts Git contenant des formules supplémentaires. Par défaut, Homebrew utilise homebrew/core et homebrew/cask.

homebrew/bundle
brew tap
# homebrew/cask
Fenêtre de terminal
brew tap hashicorp/tap

Une fois ajouté, vous pouvez installer les formules de ce tap :

Fenêtre de terminal
brew install hashicorp/tap/terraform
Fenêtre de terminal
brew untap hashicorp/tap
TapDescription
homebrew/cask-fontsPolices pour développeurs
hashicorp/tapOutils HashiCorp (Terraform, Vault)
aws/tapAWS CLI et outils
mongodb/brewMongoDB Community

Certains paquets proposent plusieurs versions avec le suffixe @version :

Fenêtre de terminal
brew search python
# python@3.11 python@3.12 python@3.13
brew install python@3.11

Pour empêcher la mise à jour d’un paquet :

Fenêtre de terminal
# Bloquer les mises à jour
brew pin python@3.12
# Voir les paquets bloqués
brew list --pinned
# python@3.12
# Débloquer
brew unpin python@3.12

Si plusieurs versions sont installées, utilisez brew link :

Fenêtre de terminal
# Désactiver la version actuelle
brew unlink python@3.12
# Activer une autre version
brew link python@3.11 --force
Fenêtre de terminal
# Vérifier la configuration
brew doctor
# Voir la configuration actuelle
brew config
# Recréer les liens symboliques
brew link <paquet> --overwrite
# Réinstaller un paquet corrompu
brew reinstall <paquet>
SymptômeCause probableSolution
command not found: brewPATH non configuréRelancer le shellenv (voir installation)
Permission deniedProblème de propriétairesudo chown -R $(whoami) /opt/homebrew
Error: No available formulaCatalogue obsolètebrew update
Bottle not foundVersion de macOS non supportéebrew install --build-from-source <pkg>
Cask requires macOSCask sur LinuxLes casks sont réservés à macOS
already installedPaquet déjà présentbrew reinstall <pkg> si besoin
Fenêtre de terminal
# Réinitialiser Homebrew (garde les paquets)
brew update-reset
# Nettoyer le cache
brew cleanup --prune=all
# Vérifier et réparer les liens
brew doctor
  • 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
  • Nettoyez régulièrement : brew cleanup libère l’espace disque
  • Utilisez brew bundle pour des installations reproductibles
  • Évitez d’installer tout : chaque paquet consomme des ressources
  • Un Brewfile par projet si les dépendances diffèrent
  • Versionnez votre Brewfile dans votre repo dotfiles
  • Documentez les taps externes que vous utilisez
  1. brew install installe des outils CLI, --cask pour les apps GUI
  2. brew bundle dump sauvegarde votre configuration dans un Brewfile
  3. brew bundle install restaure tout depuis ce fichier
  4. brew deps --tree visualise les dépendances d’un paquet
  5. brew services gère les services (bases de données, serveurs)
  6. brew pin bloque les mises à jour d’un paquet spécifique
  7. brew doctor diagnostique les problèmes de configuration

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.