Comment vider le cache Homebrew et supprimer les anciennes versions sur Mac
Équipe AskClean · Mis à jour 2026-08-05
Utilisez brew --cache pour localiser le cache de téléchargement Homebrew, puis exécutez brew cleanup -n avant toute modification. Un brew cleanup normal retire les verrous obsolètes, les téléchargements périmés et les anciennes versions installées de formules ; sauf si HOMEBREW_NO_AUTOREMOVE est défini, il peut aussi retirer automatiquement des formules devenues inutiles comme dépendances. brew cleanup --prune=all élimine les fichiers en cache sans limite d’âge. Acceptez donc le coût des retéléchargements et d’un retour à une version antérieure avant d’agir.

Distinguer cache, anciens kegs et outils actuels
Homebrew conserve les paquets binaires (bottles), les archives de code source et les téléchargements de casks sous ~/Library/Caches/Homebrew par défaut ; HOMEBREW_CACHE peut changer ce chemin. Les formules installées résident dans des répertoires versionnés appelés kegs dans le Cellar, les casks dans le Caskroom et les liens actifs sous le préfixe. Découvrez les vrais emplacements avec brew --cache, brew --cellar, brew --caskroom et brew --prefix. Le Cellar, le Caskroom, le préfixe, le Brewfile, les fichiers de configuration, les services, les bases de données et les projets ne sont pas un cache à supprimer en bloc.
Auditer chaque candidat avec une simulation
Mesurez le cache actif avec du -sh "$(brew --cache)", puis exécutez brew cleanup -n. La simulation montre les téléchargements périmés, mais aussi les anciennes formules installées et toute dépendance proposée à la suppression automatique. Vérifiez les outils dont vous dépendez avec brew list --versions et assurez-vous qu’aucun script ni retour à une version antérieure n’utilise encore un ancien keg. Une simulation n’est pas une sauvegarde : après l’action, les éléments retirés ne sont pas garantis dans la Corbeille ni encore disponibles dans la même version auprès de leur source.
- Exécutez brew --cache, puis mesurez le cache de téléchargement actif avec du -sh "$(brew --cache)".
- Exécutez brew cleanup -n et examinez chaque téléchargement, chaque ancienne version de formule et toute dépendance proposée à la suppression automatique.
- Utilisez brew list --versions pour repérer les versions actuelles et anciennes requises, puis confirmez le réseau, le proxy et la disponibilité auprès des sources.
- Lancez brew cleanup pour l’entretien normal après avoir accepté tous les candidats ; si vous voulez exclure autoremove, préfixez la simulation et la commande réelle par HOMEBREW_NO_AUTOREMOVE=1. Réservez brew cleanup --prune=all au cas où vous avez d’abord contrôlé brew cleanup -n --prune=all, avec le même préfixe si nécessaire.
- Remesurez le cache, relancez brew cleanup -n et brew list --versions, puis testez au moins un outil Homebrew important.
brew cleanup -n est une prévisualisation, pas une sauvegarde. Un ancien keg supprimé peut casser un chemin de script ou empêcher un retour à une version antérieure non documenté, sans garantie de récupération exacte.
Choisir la commande cleanup la plus ciblée
Après examen, utilisez brew cleanup pour l’entretien normal fondé sur l’âge. Si vous voulez exclure la suppression automatique des dépendances inutilisées, préfixez la simulation et la commande réelle par HOMEBREW_NO_AUTOREMOVE=1, y compris avec --prune=all. Pour l’entretien normal, exécutez par exemple HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n, puis HOMEBREW_NO_AUTOREMOVE=1 brew cleanup. Si vous voulez vraiment retirer tous les fichiers en cache sans limite d’âge, contrôlez d’abord brew cleanup -n --prune=all, puis seulement exécutez brew cleanup --prune=all. Les prochaines installations, réinstallations ou compilations depuis les sources devront récupérer bottles, archives et installateurs. cleanup peut aussi supprimer d’anciens kegs et rendre impossible le retour exact à une version antérieure.
Distinguer autoremove du nettoyage du cache
brew autoremove n’est pas un nettoyage de cache : il désinstalle les formules que Homebrew juge désormais inutiles comme dépendances. Homebrew peut toutefois déclencher cette opération pendant brew cleanup, sauf si HOMEBREW_NO_AUTOREMOVE est défini. Pour prendre cette décision séparément, utilisez HOMEBREW_NO_AUTOREMOVE=1 avec la simulation puis la commande réelle, et examinez ensuite brew autoremove --dry-run à part, car vos scripts peuvent utiliser directement un outil non déclaré. Après cleanup, remesurez le cache, relancez brew cleanup -n et brew list --versions, puis testez vos commandes importantes.
Limites de suppression et coût de récupération
Prévisualisez les téléchargements et anciennes versions avec brew cleanup -n, puis protégez les outils actuels, dépendances, réglages et données utilisateur.
| Élément ou action | À inspecter avec ou dans | Conséquence |
|---|---|---|
| Distinguer cache, anciens kegs et outils actuels | brew --cache | Homebrew conserve les paquets binaires (bottles), les archives de code source et les téléchargements de casks sous ~/Library/Caches/Homebrew par défaut ; HOMEBREW_CACHE peut changer ce chemin. Les formules installées résident dans des répertoires versionnés appelés kegs dans le Cellar, les casks dans le Caskroom et les liens actifs sous le préfixe. Découvrez les vrais emplacements avec brew --cache, brew --cellar, brew --caskroom et brew --prefix. Le Cellar, le Caskroom, le préfixe, le Brewfile, les fichiers de configuration, les services, les bases de données et les projets ne sont pas un cache à supprimer en bloc. |
| Auditer chaque candidat avec une simulation | brew cleanup -n | Mesurez le cache actif avec du -sh "$(brew --cache)", puis exécutez brew cleanup -n. La simulation montre les téléchargements périmés, mais aussi les anciennes formules installées et toute dépendance proposée à la suppression automatique. Vérifiez les outils dont vous dépendez avec brew list --versions et assurez-vous qu’aucun script ni retour à une version antérieure n’utilise encore un ancien keg. Une simulation n’est pas une sauvegarde : après l’action, les éléments retirés ne sont pas garantis dans la Corbeille ni encore disponibles dans la même version auprès de leur source. |
| Choisir la commande cleanup la plus ciblée | brew cleanup / brew cleanup --prune=all | Après examen, utilisez brew cleanup pour l’entretien normal fondé sur l’âge. Si vous voulez exclure la suppression automatique des dépendances inutilisées, préfixez la simulation et la commande réelle par HOMEBREW_NO_AUTOREMOVE=1, y compris avec --prune=all. Pour l’entretien normal, exécutez par exemple HOMEBREW_NO_AUTOREMOVE=1 brew cleanup -n, puis HOMEBREW_NO_AUTOREMOVE=1 brew cleanup. Si vous voulez vraiment retirer tous les fichiers en cache sans limite d’âge, contrôlez d’abord brew cleanup -n --prune=all, puis seulement exécutez brew cleanup --prune=all. Les prochaines installations, réinstallations ou compilations depuis les sources devront récupérer bottles, archives et installateurs. cleanup peut aussi supprimer d’anciens kegs et rendre impossible le retour exact à une version antérieure. |
| Distinguer autoremove du nettoyage du cache | brew autoremove --dry-run (ce n’est pas un nettoyage de cache) | brew autoremove n’est pas un nettoyage de cache : il désinstalle les formules que Homebrew juge désormais inutiles comme dépendances. Homebrew peut toutefois déclencher cette opération pendant brew cleanup, sauf si HOMEBREW_NO_AUTOREMOVE est défini. Pour prendre cette décision séparément, utilisez HOMEBREW_NO_AUTOREMOVE=1 avec la simulation puis la commande réelle, et examinez ensuite brew autoremove --dry-run à part, car vos scripts peuvent utiliser directement un outil non déclaré. Après cleanup, remesurez le cache, relancez brew cleanup -n et brew list --versions, puis testez vos commandes importantes. |
FAQ
brew cleanup est-il sans risque sur Mac ?
C’est une commande Homebrew prise en charge, mais elle retire aussi d’anciennes versions de formules et peut déclencher autoremove. Exécutez toujours brew cleanup -n, protégez les kegs encore nécessaires à un script ou à un retour à une version antérieure et utilisez HOMEBREW_NO_AUTOREMOVE=1 si vous voulez traiter les dépendances inutilisées séparément.
Que supprime brew cleanup --prune=all ?
Il étend la politique du cache sans limite d’âge, tout en conservant les autres effets de cleanup sur les anciens verrous et versions. Vérifiez la liste exacte avec brew cleanup -n --prune=all.
Faut-il ensuite exécuter brew autoremove ?
Pas comme étape supplémentaire automatique. brew autoremove désinstalle des formules de dépendance et ne vide pas le cache ; brew cleanup peut déjà le déclencher sauf si HOMEBREW_NO_AUTOREMOVE est défini. Pour une décision séparée, utilisez cette variable pendant cleanup, puis commencez par brew autoremove --dry-run.
Sources