MacEntwickler3 Min. Lesezeit

Caches von Homebrew, npm, pip, Gradle, CocoaPods und Docker auf dem Mac leeren

Paketmanager und Entwicklerwerkzeuge bewahren große Caches auf. Hier sind die offiziellen Befehle, um Homebrew, npm, Yarn, pnpm, pip, uv, Gradle, CocoaPods, Dart, Cargo und Docker sicher aufzuräumen.

Aktualisiert am · Geschrieben vom spacerecover-Team

Jeder Paketmanager bewahrt einen lokalen Cache mit allem auf, was er herunterlädt, und die meisten räumen ihn nie von selbst auf. Nach ein paar Jahren mit vielen Projekten können diese Caches leicht Dutzende Gigabyte erreichen. Die gute Nachricht: Fast alle lassen sich gefahrlos leeren, weil die Werkzeuge das Benötigte erneut herunterladen.

Bevor du beginnst: Stoppe laufende Builds, Installationen und Entwicklungsserver. Einen Cache zu leeren, während ein Werkzeug ihn nutzt, kann zu verwirrenden Fehlern führen.

Sehen, wo der Platz geblieben ist

Dieser Befehl ändert nichts und zeigt die Größe gängiger Cache-Ordner:

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

Ordner, die nicht existieren, werden übersprungen.

Homebrew

Homebrew bewahrt heruntergeladene Bottles und alte Versionen von Formeln auf. Räume sie auf mit:

brew cleanup

Um alle zwischengespeicherten Downloads zu entfernen, nicht nur alte:

brew cleanup --prune=all

Führe zuerst brew cleanup -n aus, um zu sehen, was entfernt würde, ohne etwas zu entfernen.

npm, Yarn und pnpm

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

npm cache verify prüft und ordnet den Cache, ohne alles zu leeren. pnpm store prune entfernt Pakete, auf die kein Projekt mehr verweist. Das ist auch für einen pnpm-Store sicher, den mehrere Projekte teilen.

Alte node_modules-Ordner

Jedes JavaScript-Projekt hat seinen eigenen Ordner node_modules, oft Hunderte Megabyte groß. So listest du sie in einem Projektordner auf, ohne etwas zu löschen:

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

Lösche node_modules in Projekten, an denen du gerade nicht arbeitest. Mit npm install kommt der Ordner zurück.

Python: pip und uv

pip cache purge
uv cache clean

uv cache prune ist eine schonendere Variante, die nur ungenutzte Einträge entfernt. Virtuelle Umgebungen (Ordner .venv) in alten Projekten können ebenfalls groß sein und lassen sich aus deiner Anforderungsdatei neu erstellen.

Gradle

Der Abhängigkeits-Cache von Gradle liegt in ~/.gradle/caches. Stoppe laufende Daemons und lösche ihn dann:

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

Gradle lädt die Abhängigkeiten beim nächsten Build erneut herunter. In Android Studio kannst du außerdem alte Android-SDK-Plattformen und Systemabbilder unter Settings > Languages & Frameworks > Android SDK und alte Emulatoren im Device Manager entfernen.

CocoaPods

pod cache clean --all

Damit werden heruntergeladene Pods entfernt. Die Ordner Pods und die Datei Podfile.lock deiner Projekte sind nicht betroffen.

Dart und Flutter

dart pub cache clean

Damit wird alles im Pub-Cache entfernt, auch global aktivierte Werkzeuge, die du dann erneut aktivieren musst. flutter pub get in einem Projekt lädt dessen Pakete erneut. flutter clean in einem Projekt entfernt dessen Build-Ausgabe.

Rust (Cargo)

Führe cargo clean in Projekten aus, an denen du gerade nicht arbeitest, um deren Ordner target zu entfernen, die meist den meisten Rust-Speicher belegen. Der Registry-Cache in ~/.cargo/registry kann gelöscht werden und wird erneut heruntergeladen.

Docker

Docker Desktop speichert Images, Container, Volumes und den Build-Cache in einem einzigen Festplattenabbild. Sein Speicher schrumpft daher nicht, wenn du Dateien im Finder löschst.

  1. Sieh nach, was Platz belegt:

    docker system df
    
  2. Entferne gestoppte Container, ungenutzte Netzwerke, verwaiste Images und den Build-Cache:

    docker system prune
    

    Mit -a werden zusätzlich alle Images entfernt, die von keinem Container genutzt werden. Füge --volumes nicht hinzu, wenn du dir nicht sicher bist: Volumes enthalten dauerhafte Daten wie lokale Datenbanken.

  3. Unter Docker Desktop > Settings > Resources kannst du die Größe des Festplattenabbilds sehen und begrenzen.

Xcode

DerivedData, Archive, Gerätesupport-Dateien und Simulatoren von Xcode behandeln wir in einer eigenen Anleitung zum Freigeben von Xcode-Speicher.

Häufige Fragen

Ist es sicher, den npm-Cache zu leeren?

Ja. npm lädt Pakete bei Bedarf erneut herunter. Stoppe vorher laufende Installationen. Deine Projekte und ihre node_modules-Ordner sind nicht betroffen.

Löscht docker system prune meine Daten?

Standardmäßig werden gestoppte Container, ungenutzte Netzwerke, verwaiste Images und der Build-Cache entfernt, aber keine Volumes. Volumes, die oft Datenbanken enthalten, werden nur entfernt, wenn du --volumes hinzufügst.

Kann ich ~/.gradle/caches löschen?

Ja, nachdem du die Gradle-Daemons gestoppt hast. Gradle lädt die Abhängigkeiten beim nächsten Build erneut herunter, was Zeit und Bandbreite kostet.

Soll das für dich erledigt werden?

spacerecover findet die Caches von Homebrew, npm, Gradle, CocoaPods, pip, uv, Swift-Paketen und Dart sowie die Build-Ausgabe von Xcode und den Docker-Speicher und erklärt, was sich jeweils neu erzeugt. Es führt nie pauschale Prune-Befehle aus, und Projekte in deinen Code-Ordnern sind geschützt.

Quellen und weiterführende Links

WEITERLESEN