MacDéveloppeurs3 min de lecture

Comment vider les caches Homebrew, npm, pip, Gradle, CocoaPods et Docker sur un Mac

Les gestionnaires de packages et les outils de développement conservent de grands caches. Voici les commandes officielles pour nettoyer Homebrew, npm, Yarn, pnpm, pip, uv, Gradle, CocoaPods, Dart, Cargo et Docker en toute sécurité.

Mis à jour · Écrit par l'équipe spacerecover

Chaque gestionnaire de paquets conserve un cache local de ce qu’il télécharge, et la plupart ne le nettoient jamais automatiquement. En quelques années de projets, ces caches peuvent facilement atteindre des dizaines de gigaoctets. La bonne nouvelle est que presque tous peuvent être effacés en toute sécurité, car les outils téléchargent à nouveau ce dont ils ont besoin.

Avant de commencer : arrêtez les compilations en cours, les installations et les serveurs de développement. Vider un cache pendant qu'un outil l'utilise peut provoquer des erreurs déroutantes.

Voir où se trouve l'espace

Cette commande en lecture seule affiche la taille des dossiers de cache courants :

du -sh ~/Library/Caches/Homebrew ~/.npm ~/Library/pnpm ~/Library/Caches/pip ~/Library/Caches/uv ~/.gradle/caches ~/Library/Caches/CocoaPods ~/.pub-cache ~/.cargo/registry 2>/dev/null

Les dossiers qui n'existent pas sont ignorés.

Homebrew

Homebrew conserve les paquets binaires (« bottles ») téléchargés et les anciennes versions de formules. Nettoyez-les avec :

brew cleanup

Pour supprimer également tous les téléchargements mis en cache, pas seulement les anciens :

brew cleanup --prune=all

Exécutez d'abord brew cleanup -n pour voir ce qui serait supprimé sans le supprimer.

npm, Yarn et pnpm

npm cache clean --force
yarn cache clean
pnpm store prune

npm cache verify vérifie et range le cache sans tout effacer. pnpm store prune supprime les packages non référencés par aucun projet, ce qui est sûr pour un stockage pnpm partagé entre les projets.

Anciens dossiers node_modules

Chaque projet JavaScript possède son propre node_modules, souvent des centaines de mégaoctets. Pour les lister dans un dossier de projets sans rien supprimer :

find ~/code -name node_modules -type d -prune -exec du -sh {} + 2>/dev/null

Supprimez node_modules dans les projets sur lesquels vous ne travaillez pas activement. L'exécution de npm install le ramène.

Python : pip et uv

pip cache purge
uv cache clean

uv cache prune est une option plus douce qui supprime uniquement les entrées inutilisées. Les environnements virtuels (dossiers .venv) dans les anciens projets peuvent également être volumineux et peuvent être recréés à partir de votre fichier de dépendances.

Gradle

Le cache de dépendances de Gradle réside dans ~/.gradle/caches. Arrêtez tous les démons en cours d'exécution, puis supprimez-le :

./gradlew --stop
rm -rf ~/.gradle/caches

Gradle télécharge à nouveau les dépendances lors de la prochaine compilation. Les utilisateurs d'Android Studio peuvent également supprimer les anciennes plates-formes du SDK Android et les images système dans Paramètres > Langues et frameworks > SDK Android, ainsi que les anciens émulateurs dans le Gestionnaire de périphériques.

CocoaPods

pod cache clean --all

Cela efface les pods téléchargés. Les dossiers Pods et Podfile.lock de vos projets ne sont pas affectés.

Dart et Flutter

dart pub cache clean

Cela supprime tout ce qui se trouve dans le cache de pub, y compris les outils activés globalement, que vous devrez réactiver. L'exécution de flutter pub get dans un projet récupère à nouveau ses packages. flutter clean dans un projet supprime sa fichiers de compilation.

Rust (Cargo)

Exécutez cargo clean dans les projets sur lesquels vous ne travaillez pas pour supprimer leurs dossiers target, qui constituent souvent le plus grand stockage Rust. Le cache de registre dans ~/.cargo/registry peut être supprimé et sera à nouveau téléchargé.

Docker

Docker Desktop stocke les images, les conteneurs, les volumes et le cache de compilation dans une seule image disque, de sorte que son stockage ne diminue pas en supprimant des fichiers dans le Finder.

  1. Voyez ce qui utilise l'espace :

    docker system df
    
  2. Supprimez les conteneurs arrêtés, les réseaux inutilisés, les images sans référence et le cache de compilation :

    docker system prune
    

Ajoutez -a pour supprimer également toutes les images non utilisées par un conteneur. N'ajoutez pas --volumes sauf si vous êtes sûr : les volumes contiennent des données persistantes telles que des bases de données locales.

  1. Dans Docker Desktop > Paramètres > Ressources, vous pouvez voir et limiter la taille de l'image disque.

Xcode

Les DerivedData, les archives, les fichiers de prise en charge des appareils et les simulateurs de Xcode sont traités dans notre guide séparé sur effacer le stockage Xcode.

Questions fréquemment posées

Est-il sécuritaire de vider le cache npm ?

Oui. npm télécharge à nouveau les packages si nécessaire. Arrêtez d’abord toute installation en cours. Vos projets et leurs dossiers node_modules ne sont pas affectés.

La commande docker system prune supprimera-t-elle mes données ?

Par défaut, il supprime les conteneurs arrêtés, les réseaux inutilisés, les images sans référence et le cache de compilation, mais pas les volumes. Les volumes, qui contiennent souvent des bases de données, ne sont supprimés que si vous ajoutez --volumes.

Puis-je supprimer ~/.gradle/caches ?

Oui, après avoir arrêté les démons Gradle. Gradle télécharge à nouveau les dépendances lors de la prochaine compilation, ce qui prend du temps et de la bande passante.

Voulez-vous que cela soit fait pour vous ?

spacerecover trouve les caches Homebrew, npm, Gradle, CocoaPods, pip, uv, Swift package et Dart, ainsi que la fichiers de compilation Xcode et le stockage Docker, et explique ce que chacun reconstruit. Il n’exécute jamais de commandes de nettoyage global et les projets dans vos dossiers de code sont protégés.

Sources et lectures complémentaires

POURSUIVEZ