Homebrew verwijderen op de Mac met het officiële script
Homebrew levert een officiële uninstaller, en die doet wat hij zegt. De verrassing is het bereik: hij verwijdert Homebrew, en hij verwijdert wat Homebrew heeft geïnstalleerd, en die twee feiten landen anders afhankelijk van waarom je hier bent.
Heb je alleen schijfruimte nodig, controleer dan hoeveel Homebrew gebruikt voordat je het verwijdert. Gedraagt één formula zich verkeerd, dan is de hele omgeving verwijderen onnodig.
Schrijf voordat je verdergaat brew leaves en de casklijst op. Draai daarna de
officiële uninstaller met --dry-run en lees het bereik alsof het een verwijderplan is.
Is één pakket het probleem, dan is dit het moment om te stoppen en brew uninstall te gebruiken of
het veiligere opschoonpad voor Homebrew te volgen.
Wanneer je Homebrew niet moet verwijderen
Sla de nucleaire optie over als een van deze past:
- Eén formula of cask is kapot: gebruik
brew uninstall <name>, daarnabrew autoremoveals afhankelijkheden verweesd zijn. - Je hebt alleen ruimte nodig:
brew cleanup -swist oude versies en downloads zonder de prefix te verwijderen. - Je hebt
git,node,python, databaseservers of CLI-tools nog nodig die van Homebrew kwamen. De uninstaller neemt Cellar en Caskroom mee. - Je bent van plan dezelfde stapel morgen op dezelfde Mac opnieuw te installeren. Exporteer de lijsten hieronder, schoon op met
brew cleanupen houd de installatie.
Verwijder als je Homebrew voorgoed verlaat, naar een schone prefix migreert na een kapotte installatie, of een machine wist waarop je geen van die pakketten meer wilt.
Ken je prefix: Intel, Apple silicon en Rosetta-resten
De standaardprefix van Homebrew hangt van de chip af:
| Mac | Standaardprefix | binary brew |
|---|---|---|
| Apple silicon | /opt/homebrew |
/opt/homebrew/bin/brew |
| Intel | /usr/local |
/usr/local/bin/brew |
Bevestig wat je echt hebt voordat je iets verwijdert:
uname -m
brew --prefix
which brew
arm64 is Apple silicon. x86_64 is Intel (of een Rosetta-terminal). Op een gemigreerde Mac met Apple silicon kan een oude Intel-Homebrew onder /usr/local nog naast /opt/homebrew bestaan. Het officiële uninstall-script zoekt de standaard voor jouw machine, en op arm64 bekijkt het ook /usr/local zodat een achtergebleven Intel-prefix niet wordt gemist. Houd je bewust twee prefixen, geef dan --path mee zodat je de prefix verwijdert die je bedoelt.
Wis niet heel /usr/local met de hand op Intel. Die map wordt gedeeld met andere software. Gebruik het officiële script, dat de eigen bomen van Homebrew als doel heeft.
De officiële uninstaller
De FAQ van Homebrew wijst naar het uninstall-script in de repository Homebrew/install. Kopieer de opdracht liever van die pagina als Homebrew hem ooit wijzigt. De huidige eenregelige opdracht is:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
Wil je het script lezen voordat het draait, download het dan eerst:
curl -O https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh
less uninstall.sh
/bin/bash uninstall.sh --help
Nuttige vlaggen:
--dry-run(ook-n): toon wat er zou worden verwijderd en verander niets. Begin hier op een machine waar je om geeft.--path=PATH: verwijder een specifieke prefix (bijvoorbeeld/usr/localop Apple silicon na een installatie uit de Rosetta-tijd).--force: sla de bevestigingsvraag over (ook geïmpliceerd alsNONINTERACTIVEis gezet).--skip-cache-and-logs: laat cache- en logmappen met rust.
Negeer de oude gist van mxcl en elke gids die nog zegt dat je cd $(brew --prefix) moet doen en met git ls-files moet verwijderen. Die route was gericht op de vroege indeling van /usr/local en is onveilig op moderne installaties.
Wat het script echt verwijdert
De uninstaller verwijdert de Homebrew-prefix en de mappen daaronder: bin,
etc, include, lib, opt, sbin, share, var, Frameworks, en zowel
Cellar als Caskroom.
Die laatste twee zijn het punt. De Cellar is waar de bestanden van elke formula staan, en de Caskroom is waar cask-metagegevens staan. Homebrew verwijderen haalt ze weg, dus elke opdracht-regeltool die je ermee hebt geïnstalleerd, gaat op hetzelfde moment mee.
Het wist ook ~/Library/Caches/Homebrew en ~/Library/Logs/Homebrew, de
Homebrew-cache op systeemniveau, /etc/paths.d/homebrew, en door Homebrew beheerde apps in
/Applications en ~/Applications.
Schrijf op wat je hebt voordat je het verwijdert
Exporteer de inventaris vóór het verwijderen, met deze twee opdrachten:
brew leaves > ~/Desktop/brew-formulae.txt
brew list --cask > ~/Desktop/brew-casks.txt
brew leaves toont formulae waarvan geen andere geïnstalleerde formula of cask afhangt.
Het is een nuttige startlijst, geen volledig verslag van alles wat je expliciet hebt geïnstalleerd.
Bekijk deze twee bestanden voordat je ze gebruikt om je setup opnieuw op te bouwen.
Controleer pakketgegevens apart van de pakketbestanden. Configuratie in je thuismap
kan blijven, maar een Postgres-database onder /opt/homebrew/var of /usr/local/var staat nog binnen de Homebrew-prefix. De uninstaller verwijdert var, dus gegevens daar kunnen meegaan. Maak een back-up van gegevens die je
nodig hebt buiten de prefix voordat je verwijdert. Stop diensten eerst als je ze gebruikt:
brew services list
brew services stop --all
Optioneel: haal formulae en casks eerst weg
Wil je een afbouw in stappen in plaats van één nucleaire run, verwijder pakketten dan terwijl brew nog werkt:
brew list --formula
brew uninstall --force $(brew list --formula)
brew list --cask
brew uninstall --cask --force $(brew list --cask)
brew autoremove
brew cleanup -s
Dat leegt Cellar en Caskroom maar laat de Homebrew-installatie staan. Gebruik het als je onzeker bent over gegevens onder var, of als je pakketruimte wilt vrijmaken en brew wilt houden voor een kleinere set tools later. Als je klaar bent met Homebrew zelf, draai dan nog steeds de officiële uninstaller zodat de prefix, taps en caches netjes verdwijnen.
De verwijdering draaien
- Draai met
--dry-runen lees elk pad. - Draai zonder
--dry-run, typyals het wordt gevraagd, en voer je macOS-wachtwoord in alssudonodig is voor beschermde mappen. - Kopieer een lijst "possible Homebrew files were not deleted" uit de terminal voordat je het venster sluit.
Voorbeeld van een dry-run nadat je het script hebt gedownload:
/bin/bash uninstall.sh --dry-run
Of met de eenregelige opdracht op afstand: download eerst zodat je vlaggen kunt meegeven zonder aanhalingstekens onhandig te nesten, en draai daarna /bin/bash uninstall.sh.
Checklist voor achtergebleven bestanden
Als het script klaar is, kan het melden dat sommige mogelijke Homebrew-bestanden niet zijn verwijderd en dat je ze zelf wilt weghalen, gevolgd door de lijst.
Dat is de enige plek waar die paden ooit worden genoemd. Het gebeurt meestal door bevoegdheden op mappen die Homebrew niet heeft gemaakt, en de lijst is kort. Kopieer hem ergens naartoe voordat je de terminal sluit, want de uninstaller opnieuw draaien op een installatie die al weg is, levert hem niet nog eens op.
Typische resten staan onder de prefix die je net hebt verwijderd:
- Apple silicon:
/opt/homebrew/etc,share,var,Frameworksen vergelijkbare lege of deels in bezit zijnde mappen - Intel: dezelfde namen onder
/usr/local, maar verwijder nooit niet-gerelateerde bomen onder/usr/localop de gok
Heeft het script een pad genoemd en heb je bevestigd dat het alleen van Homebrew is, verwijder het dan expliciet (spatie na -rf):
sudo rm -rf /opt/homebrew/share
Controleer daarna:
ls /opt/homebrew
ls /usr/local/Homebrew
ls ~/Library/Caches/Homebrew
ls ~/Library/Logs/Homebrew
Verwacht "No such file or directory" zodra die locaties weg zijn. Bestaat /opt/homebrew of een boom die alleen van Homebrew is nog en is het script al klaar, dan is sudo rm -rf op dat pad de gebruikelijke opruiming. Controleer het pad dubbel voordat je op Return drukt.
Pakketconfiguratie buiten de prefix blijft vaak met opzet staan: ~/.gitconfig, beheerders van taalversies, appondersteuningsmappen onder ~/Library, en databases die je uit var hebt verplaatst. Dat is niet de prefix van Homebrew. Verwijder ze alleen als je weet waarbij ze horen.
Je shellprofiel noemt het nog
De uninstaller bewerkt .zprofile, .zshrc, .zshenv, .zlogin of .bash_profile niet. De regel die het installatieprogramma van Homebrew vaak toevoegt, ziet er zo uit:
eval "$(/opt/homebrew/bin/brew shellenv)"
Op Intel-Macs bevat het standaard-PATH al /usr/local/bin, dus veel installaties hadden die regel nooit nodig. Op Apple silicon is hij nodig om brew te vinden, en na het verwijderen probeert elke nieuwe shell een binary te draaien die niet meer bestaat.
Zoek en verwijder brew shellenv (en handmatig toegevoegde PATH-exports van /opt/homebrew/bin of /usr/local/bin die je niet meer wilt):
grep -n "brew shellenv\|/opt/homebrew\|/usr/local/bin" ~/.zprofile ~/.zshrc ~/.zshenv ~/.zlogin ~/.bash_profile ~/.bashrc 2>/dev/null
Open daarna een nieuw terminaltabblad. Is de waarschuwing weg en drukt which brew niets af, dan is de PATH-opruiming klaar. Laat de regel alleen staan als je meteen opnieuw wilt installeren.
Veelvoorkomende faalwijzen
Toestemming geweigerd bij resten. Het script noemde paden maar kon ze niet verwijderen. Gebruik sudo rm -rf op elk genoemd pad, met een spatie tussen -rf en het pad. rm -rf/opt/... faalt met illegal option omdat het pad als vlaggen is gelezen.
Gedeeltelijke verwijdering / "Homebrew is already installed". Een eerdere poging liet .git, Cellar of bin/brew achter. Draai het officiële uninstall-script opnieuw met het juiste --path, of verwijder de achtergebleven prefix die het script meldt, en installeer daarna opnieuw vanuit de installatiedocumentatie van Homebrew als je het nog wilt.
brew: command not found na een half afgemaakte opschoning. Of de verwijdering is klaar en PATH wijst nog naar de oude prefix (repareer de shellregel), of brew is weg terwijl de pakketten blijven. Jaag niet de klassieke gist na. Gebruik het officiële script met --path als er nog een prefixmap bestaat.
Verkeerde prefix op Apple silicon. Je hebt /opt/homebrew verwijderd, maar tools uit de Rosetta-tijd staan nog onder /usr/local. Draai het script met --path=/usr/local nadat je hebt bevestigd dat die boom van Homebrew is en geen mix van niet-gerelateerde software.
Diensten en inlogonderdelen blijven ontbrekende binaries aanroepen. Stop brew services vóór het verwijderen als je kunt. Controleer daarna Inlogonderdelen en LaunchAgents die nog naar /opt/homebrew of /usr/local/Cellar verwijzen.
Oude blogposts en de gist uit 2011. Gidsen die verwijderen via git ls-files en pbcopy horen bij een eerdere Homebrew-indeling. Geef de voorkeur aan alleen https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh.
Bedenk of je de kleinere handeling wilt
Voor een kleinere opschoning verwijdert brew cleanup oude versies en gecachte downloads, brew uninstall <formula> verwijdert één pakket, en brew autoremove verwijdert ongebruikte afhankelijkheden. Scan in de Analyseweergave van Mole de Homebrew-map vóór de opschoning, en scan hem daarna opnieuw om de grootte te vergelijken. Mole volgt wijzigingen door deze opdrachten niet automatisch.
Opnieuw opbouwen vanuit de geëxporteerde lijst
Zodra Homebrew op de nieuwe machine staat, zetten twee opdrachten terug wat je had:
xargs brew install < brew-formulae.txt
xargs brew install --cask < brew-casks.txt
Ze blijven apart omdat casks --cask nodig hebben, en een gemengde lijst faalt op de helft
van zijn regels.
brew list bevat afhankelijkheden, dus de hele lijst opnieuw afspelen markeert die pakketten als
expliciet gevraagd en verandert wat brew autoremove later kan verwijderen. brew leaves
voorkomt veel daarvan, maar het is niet hetzelfde als de geschiedenis van pakketten die je hebt gevraagd: een pakket
dat je koos, kan ook door een ander pakket worden vereist. Bekijk de lijst en voeg tools toe die je
nog nodig hebt voordat je opnieuw installeert.
De checklist van Mole voor de aparte Homebrew-Mac-app, inclusief wat hij voor de opdracht brew laat staan, staat in De Homebrew-Mac-app verwijderen zonder de opdracht brew weg te halen.
Veelgestelde vragen
Verwijdert Homebrew verwijderen alle pakketten die het heeft geïnstalleerd?
Ja voor alles wat nog in Cellar en Caskroom staat. Het officiële script verwijdert de prefix, dus formulae en cask-metagegevens gaan mee. Configuratie en gegevens buiten de prefix kunnen blijven.
Wat is het verschil tussen /opt/homebrew en /usr/local?
/opt/homebrew is de standaard op Apple silicon. /usr/local is de standaard op Intel, en het kan ook een oude Rosetta-Homebrew bevatten op een gemigreerde Mac. Controleer altijd brew --prefix voordat je verwijdert.
Moet ik elke formula verwijderen voordat ik het uninstall-script draai?
Alleen als je een opschoning in stappen wilt of eerst gegevens onder var moet bekijken. Het script verwijdert geïnstalleerde pakketten in de prefix al. Exporteer je lijsten hoe dan ook als je later misschien opnieuw installeert.
Waarom blijven er mappen over na het verwijderen?
Bevoegdheden of mappen die Homebrew niet heeft gemaakt, kunnen verwijderen blokkeren. Het script drukt die paden één keer af. Verwijder ze met sudo alleen als je ze herkent als Homebrew-resten.
Is het veilig om heel /usr/local te verwijderen?
Nee. Op Intel-Macs wordt die map gedeeld. Gebruik het officiële uninstall-script en verwijder daarna alleen paden die het noemt als er iets overblijft.
Ik zie nog brew shellenv-fouten in elke nieuwe terminal. Wat nu?
Haal de regel eval "$(...brew shellenv)" uit je opstartbestanden van zsh of bash en open daarna een nieuw tabblad. De uninstaller bewerkt die bestanden niet voor je.