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.
-
Sieh nach, was Platz belegt:
docker system df -
Entferne gestoppte Container, ungenutzte Netzwerke, verwaiste Images und den Build-Cache:
docker system pruneMit
-awerden zusätzlich alle Images entfernt, die von keinem Container genutzt werden. Füge--volumesnicht hinzu, wenn du dir nicht sicher bist: Volumes enthalten dauerhafte Daten wie lokale Datenbanken. -
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.