Pruneo-LogoPruneo

brew cleanup auf dem Mac: Homebrew-Cache und alte Versionen löschen

Kurze Antwort

Führe brew cleanup -n aus, um zu sehen, was Homebrew entfernen würde, und dann brew cleanup, um alte Formel-Versionen und Downloads zu löschen, die älter als 120 Tage sind. Mit brew cleanup --prune=all leerst du den gesamten Download-Cache, und mit brew autoremove deinstallierst du Abhängigkeiten, die nichts mehr braucht.

Wenn du Homebrew täglich nutzt, sammelt es nach und nach Dateien, die du nie siehst: heruntergeladene Bottles und Cask-Installer, alte Versionen von Formeln, die du aktualisiert hast, und Abhängigkeiten, die übrig bleiben, nachdem du das Tool deinstalliert hast, das sie brauchte. Homebrew hat eigene Befehle, um all das aufzuräumen, und sie sind der sicherste Weg dafür. Dieser Guide erklärt jeden davon, was er entfernt und was du verlierst.

Alle Befehle unten sind in der offiziellen Homebrew-Manpage und der Homebrew-FAQ dokumentiert.

Was in Homebrew Platz belegt

Es gibt drei Hauptorte:

  1. Der Download-Cache. Jede Bottle (vorkompiliertes Paket) und jeder Cask-Installer (.dmg, .pkg, .zip), den Homebrew herunterlädt, wird hier aufbewahrt. Unter macOS ist der Standardpfad ~/Library/Caches/Homebrew, wie es der Eintrag HOMEBREW_CACHE in der Manpage sagt.
  2. Alte Versionen im Cellar. Wenn du eine Formel aktualisierst, wird die neue Version neben der alten installiert. Normalerweise entfernt Homebrew die alte, aber wenn das automatische Aufräumen aus ist, stapeln sich die Versionen.
  3. Verwaiste Abhängigkeiten. Wenn du ffmpeg installierst und später deinstallierst, können die Bibliotheken, die es mitgebracht hat, installiert bleiben, obwohl sie niemand nutzt.

Schritt 1: Erst messen, dann löschen

Bevor du etwas entfernst, prüf, wie groß jeder Teil ist. Diese Befehle lesen nur:

brew --cache
du -sh "$(brew --cache)"
du -sh "$(brew --cellar)"

brew --cache gibt den Ordner des Download-Caches aus („Display Homebrew’s download cache“, so die Manpage). du -sh zeigt seine Größe. Das zweite du zeigt die Größe des Cellar, in dem die installierten Formeln liegen. Der Großteil des Cellar ist Software, die du nutzt, also lösch dort nichts von Hand.

Um zu sehen, von welchen Formeln mehr als eine Version installiert ist:

brew list --versions

Eine Zeile mit zwei oder mehr Versionsnummern bedeutet, dass ältere Versionen noch auf der Festplatte liegen.

Schritt 2: Vorschau mit brew cleanup -n

brew cleanup hat einen Probelauf-Modus. Die Manpage beschreibt -n, --dry-run so: Es zeigt, was entfernt würde, entfernt aber tatsächlich nichts.

brew cleanup -n

Du bekommst eine Liste von Dateien und Ordnern und am Ende eine Schätzung, wie viel Platz frei würde. Lies sie: Wenn du die Version einer Formel siehst, die du noch brauchst (zum Beispiel eine alte python@- oder node@-Version, von der ein Projekt abhängt), hör auf und behalte sie (siehe den Abschnitt zum automatischen Aufräumen weiter unten).

Schritt 3: brew cleanup ausführen

brew cleanup

Laut Manpage entfernt brew cleanup veraltete Lock-Dateien und alte Downloads aller Formeln und Casks sowie alte Versionen installierter Formeln. Standardmäßig entfernt es Downloads, die älter als 120 Tage sind. Dieses Limit kannst du mit HOMEBREW_CLEANUP_MAX_AGE_DAYS ändern.

Du kannst auch eine einzelne Formel oder einen einzelnen Cask aufräumen:

brew cleanup wget

Schritt 4: Den ganzen Cache mit –prune=all leeren

Das normale brew cleanup behält aktuelle Downloads. Wenn du den Cache komplett leeren willst, nutze --prune. Laut Manpage entfernt es alle Cache-Dateien, die älter als die angegebene Zahl an Tagen sind, und wenn du alles entfernen willst, nimmst du --prune=all.

Zuerst die Vorschau:

brew cleanup -n --prune=all
brew cleanup --prune=all

Es gibt auch -s, --scrub, das den Cache gründlich leert, einschließlich der Downloads selbst der neuesten Versionen. Für die meisten reicht --prune=all.

Schritt 5: Ungenutzte Abhängigkeiten mit brew autoremove entfernen

brew autoremove deinstalliert Formeln, die nur als Abhängigkeit einer anderen Formel installiert wurden und jetzt nicht mehr gebraucht werden (Manpage). Auch hier gibt es einen Probelauf:

brew autoremove -n

Prüf die Liste. Wenn du eine Formel siehst, die du direkt nutzt (zum Beispiel, weil du openssl oder python selbst verwendest, nachdem ein anderes Tool es installiert hat), füge sie zu HOMEBREW_NO_CLEANUP_FORMULAE hinzu (unten erklärt): Laut Manpage weigert sich Homebrew, eine Formel aufzuräumen oder per autoremove zu entfernen, wenn sie auf dieser Liste steht.

brew autoremove

Wie das automatische Aufräumen funktioniert

Homebrew räumt bereits selbst für dich auf, deshalb sammelt sich auf vielen Macs nie viel an. Die Manpage erklärt, dass nach brew install, brew upgrade und brew reinstall, sofern HOMEBREW_NO_INSTALL_CLEANUP nicht gesetzt ist, brew cleanup für die installierten Formeln und Casks läuft oder, alle 30 Tage, für alle Pakete. Die 30 Tage kommen aus HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS, das du ändern kannst.

Die FAQ ergänzt, dass Homebrew alte Versionen einer Formel automatisch deinstalliert, wenn du sie mit brew upgrade aktualisierst.

Nützliche Variablen, alle im Abschnitt zur Umgebung in der Manpage dokumentiert:

Variable Was sie macht
HOMEBREW_NO_INSTALL_CLEANUP Schaltet das automatische Aufräumen nach install, upgrade und reinstall ab
HOMEBREW_NO_CLEANUP_FORMULAE Kommagetrennte Liste von Formeln, die Homebrew nie aufräumt oder per autoremove entfernt
HOMEBREW_CLEANUP_MAX_AGE_DAYS Altersgrenze für gecachte Dateien (Standard 120)
HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS Tage zwischen vollständigen Aufräumläufen (Standard 30)
HOMEBREW_NO_AUTOREMOVE Verhindert, dass brew cleanup und brew uninstall ungenutzte Abhängigkeiten automatisch entfernen
HOMEBREW_CACHE Verschiebt den Download-Cache in einen anderen Ordner

Wann du alte Versionen behalten solltest

Wenn ein Projekt eine exakte Version braucht, ist es meist zu viel, das Aufräumen für alles abzuschalten. Besser ist es, nur diese Formel zu schützen. Füge diese Zeile zu deiner ~/.zprofile hinzu (oder zu der Datei, die deine Shell liest):

export HOMEBREW_NO_CLEANUP_FORMULAE="postgresql@16,node@20"

Ändere die Namen auf die Formeln, die du schützen willst. Wenn du HOMEBREW_NO_INSTALL_CLEANUP=1 setzt, denk daran, dass der belegte Platz wächst, bis du selbst brew cleanup ausführst.

Warum du vielleicht viele alte Versionen hast

Wenn brew list --versions viele Versionen zeigt, prüf, ob HOMEBREW_NO_INSTALL_CLEANUP in deinen Shell-Dateien gesetzt ist:

grep -n HOMEBREW_ ~/.zprofile ~/.zshrc 2>/dev/null

Es kommt oft vor, dass man die Variable aus einem Tutorial kopiert, um Installationen zu beschleunigen, und sie dann vergisst.

Eine sichere Routine

Einmal im Monat, oder wenn deine Festplatte voll wird:

  1. du -sh "$(brew --cache)", um die Größe zu sehen.
  2. brew cleanup -n, die Liste lesen.
  3. brew cleanup.
  4. brew autoremove -n, die Liste lesen, dann brew autoremove, wenn sie passt.
  5. Nur wenn du mehr Platz brauchst: brew cleanup --prune=all.

Lösch keine Ordner im Cellar oder im Homebrew-Präfix (/opt/homebrew auf Apple Silicon, laut der Installationsseite; mit brew --prefix siehst du deins) von Hand. Homebrew führt für jedes Paket Links und Einträge, und wenn du Dateien direkt entfernst, können kaputte Links zurückbleiben. Nutze stattdessen brew uninstall.

Homebrew ist auf dem Mac von Entwicklern selten der größte Posten. Wenn du noch Platz brauchst, schau dir Xcode DerivedData, Docker und node_modules-Ordner an, die meist viel schneller wachsen.

Zusammenfassung

Für ein vollständiges Bild, wo dein Platz bleibt, lies Speicherplatz auf dem Mac freigeben, oder lade Pruneo herunter, um es in wenigen Sekunden zu sehen.

FAQ

Ist es sicher, brew cleanup auszuführen?

Ja, für die meisten. Es entfernt alte Versionen installierter Formeln und alte Downloads, nicht die Versionen, die du gerade nutzt. Der einzige Verlust: Du kannst nicht zu einer alten Version zurückwechseln, ohne sie neu zu installieren.

Wo liegt der Homebrew-Cache auf dem Mac?

Standardmäßig in ~/Library/Caches/Homebrew. Führe brew --cache aus, um den genauen Pfad auf deinem Mac zu sehen, denn er lässt sich mit der Variable HOMEBREW_CACHE ändern.

Räumt Homebrew automatisch auf?

Ja. Nach brew install, brew upgrade oder brew reinstall räumt es die beteiligten Pakete auf, und alle 30 Tage alle Pakete. Mit HOMEBREW_NO_INSTALL_CLEANUP kannst du das abschalten.

Was ist der Unterschied zwischen brew cleanup und brew autoremove?

brew cleanup entfernt alte Versionen und gecachte Downloads. brew autoremove deinstalliert Formeln, die nur als Abhängigkeit installiert wurden und die keine installierte Formel mehr braucht.

Probier es mit Pruneo

Kostenlos für macOS 14 oder neuer. Alles, was es aufräumt, lässt sich aus der Quarantäne zurückholen.

Pruneo ist für den Mac

Schick dir den Link und lade Pruneo auf deinem Mac herunter. Kostenlos, ohne Konto.

Per Mail an mich
Trotzdem herunterladen