Homebrew mit brew cleanup und autoremove sicher aufräumen
Homebrew verwaltet alte Versionen und zwischengespeicherte Downloads aktiver als früher. Solange die automatische Bereinigung nicht deaktiviert ist, räumen Installationen und Upgrades die betroffenen Formulae auf, und Homebrew bereinigt periodisch alle Formulae. Eine lang genutzte Installation kann dennoch Downloads, gepinnte Versionen, Build-Artefakte und Abhängigkeiten ansammeln. Prüfen Sie die eigenen Metadaten von Homebrew, bevor Sie etwas unter seinem Prefix löschen.
Was Homebrew behält
Drei Arten von Resten sammeln sich an:
- Alte Versionen. Die Bereinigung entfernt normalerweise abgelöste Versionen, aber zurückgehaltene oder kürzlich aktualisierte Versionen können noch eine Weile im Cellar verbleiben.
- Heruntergeladene Archive. Jeder Bottle- und Cask-Download wird im Cache von Homebrew abgelegt, damit er nicht erneut heruntergeladen werden muss.
- Ungenutzte Abhängigkeiten. Die aktuelle Cleanup- und Uninstall-Logik von Homebrew entfernt normalerweise Formulae, die nicht mehr benötigt werden, sofern die automatische Entfernung nicht deaktiviert ist. Ältere Installationen oder unterbrochene Vorgänge können dennoch Reste hinterlassen.
Sehen Sie die Größe des Download-Caches direkt:
brew --cache
du -sh "$(brew --cache)" 2>/dev/null
Die drei Speicher getrennt messen
Eine Summe verdeckt drei Entscheidungen. Erfassen Sie vor der Bereinigung installierte Formeln, Cask-Metadaten und Download-Cache:
du -sh "$(brew --cellar)" "$(brew --caskroom)" "$(brew --cache)" 2>/dev/null
Ein großer Cache lässt sich leicht zurückgewinnen, da Homebrew die Dateien erneut laden kann. Ein großer Cellar besteht meist aus installierter Software; cleanup entfernt nur ersetzte Versionen. Ein großer Caskroom bedeutet nicht, dass die App-Bundles dort liegen, meist stehen sie in /Applications. Messen Sie danach erneut und ordnen Sie die Änderung dem tatsächlich geschrumpften Speicher zu.
Aufräumen
Prüfen Sie zuerst, welche alten Versionen und Downloads Homebrew entfernen würde. Dieser Befehl löscht nichts:
brew cleanup -n
Lesen Sie die angezeigten Pfade. Ein erfolgreicher Probelauf ohne Löschkandidaten bedeutet, dass in diesem Umfang nichts zu bereinigen ist; ein Fehler bedeutet das nicht. Wenn Sie die alten Versionen und Offline-Downloads nicht mehr benötigen, führen Sie die normale Bereinigung aus:
brew cleanup
Das aktuelle Homebrew-Handbuch
besagt, dass die Bereinigung alte installierte Versionen entfernt. Für zwischengespeicherte
Downloads gilt standardmäßig eine Altersgrenze von 120 Tagen. HOMEBREW_CLEANUP_MAX_AGE_DAYS kann
dieses Zeitfenster ändern. Nutzen Sie -n für einen Probelauf. Der tiefere Modus -s
bereinigt mehr zwischengespeicherte Downloads, behält aber Downloads für aktuell
installierte Formulae und Casks:
Der umfassendere Cache-Modus braucht einen eigenen Probelauf. Prüfen Sie die Liste des ersten Befehls und führen Sie den zweiten nur bei Zustimmung zu diesem Umfang separat aus:
brew cleanup -s -n
brew cleanup -s
Homebrew Cleanup und Uninstall entfernen ungenutzte Formula-Abhängigkeiten inzwischen
standardmäßig. brew autoremove bleibt nützlich, wenn Sie diese Abhängigkeitsentscheidung
direkt prüfen möchten:
brew autoremove --dry-run
brew autoremove
brew list zeigt installierte Pakete und brew outdated anstehende Updates. Nutzen
Sie brew --cellar, brew --caskroom und brew --cache, um Pfade zu ermitteln, statt
/opt/homebrew fest einzutragen; Intel- und Apple-Silicon-Installationen unterscheiden
sich.
Von Grund auf sicher
Die Homebrew-Bereinigung ist risikoärmer als das manuelle Löschen von Cellar-Verzeichnissen, weil sie Versions- und Abhängigkeitsmetadaten nutzt. Sie kann dennoch eine Rollback-Version oder eine zwischengespeicherte Bottle entfernen, die Sie offline nutzen wollten. Prüfen Sie Cleanup und Autoremove im Voraus, und behalten Sie gepinnte oder betrieblich kritische Versionen bewusst.
Unter der Haube: Cellar, Caskroom und wie Cleanup entscheidet
Homebrew installiert jede Formula in ein versioniertes Verzeichnis im Cellar, den
brew --cellar meldet, und verknüpft die aktive Version in sein Prefix. Beim Upgrade
liegt die neue Version neben der alten, bevor die Symlinks umgehängt werden. Casks halten
versionierte Metadaten unter dem Caskroom, während ihre App-Bundles üblicherweise unter
/Applications liegen. Downloads nutzen den von brew --cache gemeldeten Pfad und werden
nach der Richtlinie von Homebrew behalten. brew cleanup stützt sich auf Metadaten zu
installierten Versionen, Aufbewahrung und Abhängigkeiten, statt einfach jedes
nicht aktuelle Verzeichnis zu löschen. brew autoremove stellt den reinen
Abhängigkeitsteil als eigenen Befehl bereit. Weil beide auf den eigenen Aufzeichnungen von
Homebrew basieren und nicht raten, sind sie sicherer und nachvollziehbarer als manuelles
Löschen von Ordnern. Ein Probelauf ist dennoch sinnvoll auf Rechnern, die auf alte
Toolchains oder Offline-Bottles angewiesen sind.
Wo ein anderes Werkzeug enden sollte
Mole listet Homebrew-Downloads und alte Formula-Versionen auf, die Homebrew selbst mit brew cleanup --dry-run zur Entfernung vorschlägt. Die Erkennung alter Versionen unterstützt die Standardpräfixe /opt/homebrew und /usr/local und behält verlinkte oder gepinnte Versionen. Sie leert nicht den ganzen Cellar und ersetzt nicht Homebrews Abhängigkeitsprüfung. Prüfen Sie die tatsächlichen Einträge vor der Bereinigung. Alte Versionen sind nicht vorausgewählt und werden zuerst geprüft.
Eine sichere Reihenfolge
Nutzen Sie die Pfadbefehle von Homebrew, um seine Speicher zu messen, prüfen Sie
brew cleanup -n im Voraus und führen Sie die gewöhnliche Bereinigung aus, bevor Sie
-s in Betracht ziehen. Prüfen Sie brew autoremove separat, weil es eine
Abhängigkeitsfrage beantwortet, keine Cache-Frage. Ein fester Bereinigungsplan ist nicht
nötig, solange die automatische Bereinigung funktioniert und der Speicherplatzdruck
gering ist.