Homebrew mit dem offiziellen Skript deinstallieren
Homebrew liefert einen offiziellen Deinstaller, und er tut, was er sagt. Die Überraschung ist der Umfang: Er entfernt Homebrew, und er entfernt, was Homebrew installiert hat. Wie schwer diese beiden Fakten wiegen, hängt davon ab, warum Sie hier sind.
Wenn Sie nur Speicherplatz brauchen, prüfen Sie vorher, wie viel Homebrew belegt. Wenn nur eine Formula Probleme macht, ist das Entfernen der gesamten Umgebung unnötig.
Bevor Sie weitergehen, notieren Sie brew leaves und die Cask-Liste. Führen Sie den offiziellen Deinstaller dann mit --dry-run aus und lesen Sie den Umfang wie einen Löschplan. Wenn nur ein Paket das Problem ist, stoppen Sie hier und nutzen Sie brew uninstall oder folgen Sie dem sichereren Homebrew-Bereinigungspfad.
Wann Sie Homebrew nicht deinstallieren sollten
Überspringen Sie die Kernoption, wenn eines davon zutrifft:
- Eine Formula oder ein Cask ist kaputt:
brew uninstall <name>, danachbrew autoremove, wenn Abhängigkeiten verwaist sind. - Sie brauchen nur Platz:
brew cleanup -sentfernt alte Versionen und Downloads, ohne das Präfix zu löschen. - Sie brauchen noch
git,node,python, Datenbankserver oder CLI-Tools aus Homebrew. Der Deinstaller nimmt Cellar und Caskroom mit. - Sie wollen denselben Stack morgen auf demselben Mac neu installieren. Exportieren Sie die Listen unten, räumen Sie mit
brew cleanupauf und behalten Sie die Installation.
Deinstallieren Sie, wenn Sie Homebrew dauerhaft verlassen, nach einer kaputten Installation auf ein sauberes Präfix umziehen oder eine Maschine leeren, auf der Sie diese Pakete nicht mehr wollen.
Kennen Sie Ihr Präfix: Intel, Apple Silicon und Rosetta-Reste
Das Standardpräfix von Homebrew hängt vom Chip ab:
| Mac | Standardpräfix | brew-Binary |
|---|---|---|
| Apple Silicon | /opt/homebrew |
/opt/homebrew/bin/brew |
| Intel | /usr/local |
/usr/local/bin/brew |
Bestätigen Sie vor dem Löschen, was Sie wirklich haben:
uname -m
brew --prefix
which brew
arm64 ist Apple Silicon. x86_64 ist Intel (oder ein Rosetta-Terminal). Auf einem migrierten Apple-Silicon-Mac kann unter /usr/local noch ein altes Intel-Homebrew neben /opt/homebrew liegen. Das offizielle Deinstallationsskript sucht das Standardpräfix Ihrer Maschine und prüft auf arm64 auch /usr/local, damit ein übrig gebliebenes Intel-Präfix nicht übersehen wird. Wenn Sie absichtlich zwei Präfixe behalten, übergeben Sie --path, damit Sie das gemeinte entfernen.
Löschen Sie auf Intel nicht von Hand ganz /usr/local. Dieses Verzeichnis teilen sich andere Programme. Nutzen Sie das offizielle Skript, das nur Homebrew-eigene Bäume trifft.
Der offizielle Deinstaller
Die Homebrew-FAQ verweist auf das Deinstallationsskript im Homebrew/install-Repository. Kopieren Sie den Befehl lieber von dieser Seite, falls Homebrew ihn jemals ändert. Die aktuelle Einzeiler-Version:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
Wenn Sie das Skript vor dem Ausführen lesen wollen, laden Sie es zuerst herunter:
curl -O https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh
less uninstall.sh
/bin/bash uninstall.sh --help
Nützliche Flags:
--dry-run(auch-n): druckt, was entfernt würde, und ändert nichts. Beginnen Sie hier auf einer Maschine, die Ihnen wichtig ist.--path=PATH: ein bestimmtes Präfix deinstallieren (zum Beispiel/usr/localauf Apple Silicon nach einer Rosetta-Ära-Installation).--force: die Bestätigungsabfrage überspringen (auch implizit, wennNONINTERACTIVEgesetzt ist).--skip-cache-and-logs: Cache- und Log-Verzeichnisse unberührt lassen.
Ignorieren Sie den alten mxcl-Gist und Anleitungen, die noch cd $(brew --prefix) und Löschen mit git ls-files empfehlen. Das zielte auf das frühe /usr/local-Layout und ist bei modernen Installationen unsicher.
Was das Skript tatsächlich löscht
Der Deinstaller entfernt das Homebrew-Präfix und die Verzeichnisse darunter: bin, etc, include, lib, opt, sbin, share, var, Frameworks sowie Cellar und Caskroom.
Die letzten beiden sind der Punkt. Im Cellar liegen die Dateien jeder Formula, im Caskroom die Cask-Metadaten. Homebrew zu entfernen entfernt sie mit, also jedes Befehlszeilenwerkzeug, das Sie darüber installiert haben.
Außerdem räumt er ~/Library/Caches/Homebrew und ~/Library/Logs/Homebrew, den systemweiten Homebrew-Cache, /etc/paths.d/homebrew sowie von Homebrew verwaltete Apps in /Applications und ~/Applications auf.
Notieren Sie vor dem Entfernen, was Sie haben
Exportieren Sie den Bestand vor der Deinstallation mit diesen zwei Befehlen:
brew leaves > ~/Desktop/brew-formulae.txt
brew list --cask > ~/Desktop/brew-casks.txt
brew leaves listet Formulas, von denen keine andere installierte Formula oder kein Cask abhängt. Das ist ein nützlicher Start, kein vollständiger Datensatz aller explizit installierten Pakete. Prüfen Sie beide Dateien, bevor Sie damit Ihren Aufbau wiederherstellen.
Prüfen Sie Paketdaten getrennt von den Paketdateien. Konfiguration im Home-Verzeichnis kann bleiben, aber eine Postgres-Datenbank unter /opt/homebrew/var oder /usr/local/var liegt noch im Homebrew-Präfix. Der Deinstaller entfernt var, also können Daten dort mitgehen. Sichern Sie benötigte Daten außerhalb des Präfixes, bevor Sie deinstallieren. Stoppen Sie Dienste zuerst, wenn Sie sie nutzen:
brew services list
brew services stop --all
Optional: zuerst Formulas und Casks entfernen
Wenn Sie einen gestuften Abbau statt eines Kernlaufs wollen, deinstallieren Sie Pakete, solange brew noch funktioniert:
brew list --formula
brew uninstall --force $(brew list --formula)
brew list --cask
brew uninstall --cask --force $(brew list --cask)
brew autoremove
brew cleanup -s
Das leert Cellar und Caskroom, lässt die Homebrew-Installation aber stehen. Nutzen Sie es, wenn Sie unsicher wegen Daten unter var sind oder Paketplatz freimachen und brew später für einen kleineren Werkzeugsatz behalten wollen. Wenn Sie mit Homebrew selbst fertig sind, führen Sie trotzdem den offiziellen Deinstaller aus, damit Präfix, Taps und Caches sauber verschwinden.
Die Deinstallation ausführen
- Mit
--dry-runausführen und jeden Pfad lesen. - Ohne
--dry-runausführen, bei Nachfrageytippen und Ihr macOS-Passwort eingeben, wennsudofür geschützte Verzeichnisse nötig ist. - Jede Liste „possible Homebrew files were not deleted“ aus dem Terminal kopieren, bevor Sie das Fenster schließen.
Beispiel für einen Dry-Run nach dem Download des Skripts:
/bin/bash uninstall.sh --dry-run
Oder mit dem Remote-Einzeiler: zuerst herunterladen, damit Sie Flags ohne ungünstige Anführungszeichen übergeben können, dann /bin/bash uninstall.sh ausführen.
Checkliste für Restdateien
Wenn das Skript fertig ist, kann es melden, dass einige mögliche Homebrew-Dateien nicht gelöscht wurden und Sie sie selbst entfernen möchten, gefolgt von der Liste.
Das ist der einzige Ort, an dem diese Pfade je genannt werden. Meist liegt es an Berechtigungen von Verzeichnissen, die Homebrew nicht angelegt hat, und die Liste ist kurz. Kopieren Sie sie, bevor Sie das Terminal schließen, denn ein erneutes Ausführen des Deinstallers auf einer bereits entfernten Installation erzeugt sie nicht wieder.
Typische Reste liegen unter dem Präfix, das Sie gerade entfernt haben:
- Apple Silicon:
/opt/homebrew/etc,share,var,Frameworksund ähnliche leere oder teilweise besessene Verzeichnisse - Intel: dieselben Namen unter
/usr/local, aber niemals fremde/usr/local-Bäume auf Verdacht löschen
Wenn das Skript einen Pfad genannt hat und Sie bestätigt haben, dass er nur zu Homebrew gehört, entfernen Sie ihn explizit (Leerzeichen nach -rf):
sudo rm -rf /opt/homebrew/share
Danach prüfen:
ls /opt/homebrew
ls /usr/local/Homebrew
ls ~/Library/Caches/Homebrew
ls ~/Library/Logs/Homebrew
Erwarten Sie „No such file or directory“, sobald diese Orte weg sind. Wenn /opt/homebrew oder ein rein Homebrew-Baum noch existiert und das Skript schon fertig ist, ist sudo rm -rf auf diesem Pfad die übliche Nacharbeit. Prüfen Sie den Pfad doppelt, bevor Sie Return drücken.
Paketkonfiguration außerhalb des Präfixes bleibt oft absichtlich: ~/.gitconfig, Sprachversionsmanager, App-Support unter ~/Library und Datenbanken, die Sie aus var herausgeschoben haben. Das ist nicht Homebrews Präfix. Entfernen Sie sie nur, wenn Sie wissen, wozu sie gehören.
Ihr Shell-Profil erwähnt es noch
Der Deinstaller bearbeitet weder .zprofile, .zshrc, .zshenv, .zlogin noch .bash_profile. Die Zeile, die Homebrews Installer häufig hinzufügt, sieht so aus:
eval "$(/opt/homebrew/bin/brew shellenv)"
Auf Intel-Macs enthält der Standard-PATH bereits /usr/local/bin, daher brauchten viele Installationen diese Zeile nie. Auf Apple Silicon ist sie nötig, damit brew gefunden wird, und nach der Deinstallation versucht jede neue Shell, eine Binärdatei auszuführen, die nicht mehr existiert.
Suchen und entfernen Sie brew shellenv (sowie handschriftliche /opt/homebrew/bin- oder /usr/local/bin-PATH-Exporte, die Sie nicht mehr wollen):
grep -n "brew shellenv\|/opt/homebrew\|/usr/local/bin" ~/.zprofile ~/.zshrc ~/.zshenv ~/.zlogin ~/.bash_profile ~/.bashrc 2>/dev/null
Öffnen Sie danach einen neuen Terminal-Tab. Wenn die Warnung weg ist und which brew nichts ausgibt, ist die PATH-Bereinigung erledigt. Lassen Sie die Zeile nur, wenn Sie sofort neu installieren wollen.
Häufige Fehlermodi
Permission denied bei Resten. Das Skript hat Pfade gelistet, konnte sie aber nicht löschen. Nutzen Sie sudo rm -rf auf jedem genannten Pfad, mit Leerzeichen zwischen -rf und dem Pfad. rm -rf/opt/... scheitert mit illegal option, weil der Pfad als Flags gelesen wurde.
Teilweise Deinstallation / „Homebrew is already installed“. Ein früherer Versuch hat .git, Cellar oder bin/brew hinterlassen. Führen Sie das offizielle Deinstallationsskript erneut mit dem richtigen --path aus, oder entfernen Sie das Restpräfix, das das Skript meldet, und installieren Sie bei Bedarf nach Homebrews Installationsdokumenten neu.
brew: command not found nach halbfertiger Bereinigung. Entweder ist die Deinstallation fertig und PATH zeigt noch auf das alte Präfix (Shell-Zeile reparieren), oder brew ist weg, während Pakete bleiben. Jagen Sie nicht dem klassischen Gist hinterher. Nutzen Sie das offizielle Skript mit --path, wenn noch ein Präfixverzeichnis existiert.
Falsches Präfix auf Apple Silicon. Sie haben /opt/homebrew entfernt, aber Werkzeuge aus der Rosetta-Ära leben noch unter /usr/local. Führen Sie das Skript mit --path=/usr/local aus, nachdem Sie bestätigt haben, dass dieser Baum zu Homebrew gehört und keine Mischung fremder Software ist.
Dienste und Anmeldeobjekte rufen fehlende Binärdateien weiter auf. Stoppen Sie brew services vor der Deinstallation, wenn Sie können. Prüfen Sie danach Anmeldeobjekte und LaunchAgents, die noch /opt/homebrew oder /usr/local/Cellar referenzieren.
Alte Blogposts und der Gist von 2011. Anleitungen, die über git ls-files und pbcopy löschen, gehören zu einem früheren Homebrew-Layout. Nutzen Sie nur https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh.
Prüfen Sie, ob die kleinere Operation reicht
Für eine kleinere Bereinigung entfernt brew cleanup alte Versionen und Cache-Downloads, brew uninstall <formula> ein einzelnes Paket und brew autoremove ungenutzte Abhängigkeiten. In der Analyze-Ansicht von Mole scannen Sie den Homebrew-Ordner vor der Bereinigung und danach erneut, um die Größe zu vergleichen. Mole verfolgt Änderungen durch diese Befehle nicht automatisch.
Neuaufbau aus der exportierten Liste
Sobald Homebrew auf der neuen Maschine installiert ist, stellen zwei Befehle wieder her, was Sie hatten:
xargs brew install < brew-formulae.txt
xargs brew install --cask < brew-casks.txt
Sie bleiben getrennt, weil Casks --cask brauchen und eine gemischte Liste bei der Hälfte der Einträge scheitert.
brew list enthält Abhängigkeiten, daher markiert das Abspielen der gesamten Liste diese Pakete als explizit angefordert und ändert, was brew autoremove später entfernen kann. brew leaves vermeidet viel davon, ist aber nicht dasselbe wie Ihre Anforderungsgeschichte: Ein Paket, das Sie gewählt haben, kann auch von einem anderen benötigt werden. Prüfen Sie die Liste und ergänzen Sie noch benötigte Tools vor der Neuinstallation.
Häufige Fragen
Entfernt die Deinstallation von Homebrew alle darüber installierten Pakete?
Ja für alles, das noch in Cellar und Caskroom liegt. Das offizielle Skript entfernt das Präfix, also gehen Formulas und Cask-Metadaten mit. Konfiguration und Daten außerhalb des Präfixes können bleiben.
Was ist der Unterschied zwischen /opt/homebrew und /usr/local?
/opt/homebrew ist der Standard auf Apple Silicon. /usr/local ist der Standard auf Intel und kann auf einem migrierten Mac auch ein altes Rosetta-Homebrew halten. Prüfen Sie vor dem Löschen immer brew --prefix.
Soll ich jede Formula deinstallieren, bevor ich das Deinstallationsskript ausführe?
Nur wenn Sie eine gestufte Bereinigung wollen oder zuerst var-Daten prüfen müssen. Das Skript entfernt bereits installierte Pakete im Präfix. Exportieren Sie Ihre Listen in jedem Fall, wenn Sie später neu installieren könnten.
Warum bleiben nach der Deinstallation Verzeichnisse übrig?
Berechtigungen oder Verzeichnisse, die Homebrew nicht angelegt hat, können das Löschen blockieren. Das Skript druckt diese Pfade einmal. Entfernen Sie sie mit sudo nur, wenn Sie sie als Homebrew-Reste erkennen.
Ist es sicher, ganz /usr/local zu löschen?
Nein. Auf Intel-Macs ist dieses Verzeichnis geteilt. Nutzen Sie das offizielle Deinstallationsskript und entfernen Sie danach nur Pfade, die es nennt, falls etwas übrig bleibt.
Ich sehe in jedem neuen Terminal noch brew-shellenv-Fehler. Was jetzt?
Entfernen Sie die Zeile eval "$(...brew shellenv)" aus Ihren zsh- oder bash-Startdateien und öffnen Sie einen neuen Tab. Der Deinstaller bearbeitet diese Dateien nicht für Sie.