TL;DR
Quoi : Le gestionnaire de paquets manquant pour macOS (et Linux).
Pourquoi : Installer des logiciels en une commande, gérer les dépendances automatiquement.
Quick Start
Installer Homebrew :
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Ajouter au PATH (Mac Apple Silicon) :
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
Vérifier l’installation :
brew --version
Installer un paquet :
brew install wget
brew install git
brew install node
Installer des apps GUI (Casks) :
brew install --cask visual-studio-code
brew install --cask google-chrome
brew install --cask docker
Cheatsheet
| Commande | Description |
|---|---|
brew install pkg | Installer un paquet |
brew uninstall pkg | Supprimer un paquet |
brew upgrade | Mettre à jour tous les paquets |
brew upgrade pkg | Mettre à jour un paquet spécifique |
brew update | Mettre à jour Homebrew lui-même |
brew list | Lister les paquets installés |
brew search text | Rechercher des paquets |
brew info pkg | Informations sur un paquet |
brew doctor | Diagnostiquer les problèmes |
brew cleanup | Supprimer les anciennes versions |
brew services list | Lister les services en arrière-plan |
brew services start pkg | Démarrer un service |
Gotchas
Command not found after install
# Ajouter au PATH (vérifiez votre shell)
# Pour zsh (par défaut sur macOS) :
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
# Pour bash :
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.bash_profile
# Puis recharger :
source ~/.zprofile # ou ~/.bash_profile
Permission errors
# Corriger les permissions du répertoire Homebrew
sudo chown -R $(whoami) /opt/homebrew
# Ou pour Mac Intel :
sudo chown -R $(whoami) /usr/local/Homebrew
Package conflicts
# Délier le paquet en conflit
brew unlink pkg
# Lier celui que vous voulez
brew link pkg
# Forcer le lien si nécessaire
brew link --overwrite pkg
Brew doctor warnings
# Exécuter le diagnostic
brew doctor
# Les avertissements sur les kegs non liés sont généralement sans danger
# Corrigez les problèmes comme suggéré dans la sortie