-
-
Save mxcl/1173223 to your computer and use it in GitHub Desktop.
#!/bin/sh | |
# Just copy and paste the lines below (all at once, it won't work line by line!) | |
# MAKE SURE YOU ARE HAPPY WITH WHAT IT DOES FIRST! THERE IS NO WARRANTY! | |
function abort { | |
echo "$1" | |
exit 1 | |
} | |
set -e | |
/usr/bin/which -s git || abort "brew install git first!" | |
test -d /usr/local/.git || abort "brew update first!" | |
cd `brew --prefix` | |
git checkout master | |
git ls-files -z | pbcopy | |
rm -rf Cellar | |
bin/brew prune | |
pbpaste | xargs -0 rm | |
rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions | |
test -d Library/LinkedKegs && rm -r Library/LinkedKegs | |
rmdir -p bin Library share/man/man1 2> /dev/null | |
rm -rf .git | |
rm -rf ~/Library/Caches/Homebrew | |
rm -rf ~/Library/Logs/Homebrew | |
rm -rf /Library/Caches/Homebrew |
i can confirm that rmdir -p bin Library share/man/man1 2> /dev/null
is not compatible with set -e
and that if those directories are not empty then the script will not finish leaving stuff in .git and Library. how do we go about getting this updated? cc @mxcl
I hate dealing with Bash, so I created a rigorous script in Ruby to uninstall Homebrew. It has some nice CLI options, searches a few extra locations for files based on feedback on Stack Overflow, and there is a flexible mechanism for locating Homebrew install locations.
I would love feedback on this; I tested it thorougly, but can't cover all the edge cases for more tricky things like permissions (which is why I advocate the use of sudo
to run this). I actually want to contribute to trunk Homebrew at some point but don't have the time yet; I thought I'd at least pitch in my two cents here! Let's start making it easier to uninstall the best Mac package manager guys! The script is here: https://gist.github.com/SteveBenner/11254428
Oh, and I thought about changing the permissions of the original directories as part of this, but I'm on the fence. It really seems like something that should be a discrete operation, but I'll probably add the capability at some point.
Thanks! I'm switching to Mac Ports because it actually installs stuff rather than putting it into a separate directory and refusing to let me use sudo to link anything.
looks like homebrew allows you to uninstall it with this command
rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup
#!/usr/bin/env bash
set -e
notice() { echo -e "\033[1;32m=> $1\033[0m"; }
dirs=(
"/usr/local/.git"
"/usr/local/.gitignore"
"/usr/local/Cellar"
"/usr/local/Library"
"/usr/local/CODEOFCONDUCT.md"
"/usr/local/CONTRIBUTING.md"
"/usr/local/LICENSE.txt"
"/usr/local/README.md"
"/usr/local/SUPPORTERS.md"
"/Library/Caches/Homebrew"
"~/Library/Caches/Homebrew"
"~/Library/Logs/Homebrew"
"/usr/local/bin/brew"
"/usr/local/share/man/man1/brew"*
)
read -p "Deleting all Homebrew directories. Are you sure (y/n)?" yn
case $yn in
[Yy]* )
for dir in "${dirs[@]}"; do
notice "deleting ${dir}"
sudo rm -r $dir
done;;
[Nn]* ) return;;
* ) "Please enter yest or no";;
esac
Is the comment proposed by dylan947 a legit way of removing homebrew? I'm holding off installing till I know there is a clean way of uninstalling.
Will original script above still work and remove Homebrew completely? I am new to this but I need to know if above original uninstall instruction works.
Background if needed -
I tried installing Homebrew few days ago but terminal kept giving me different warning messages, something about some python file and some other stuff I don't know about. An instructor, in a class I am taking, uninstalled some files that were getting in a way and it we got it to install . Unfortunatly it still wouldn't work, due to what I think is a perl file. We gave up after that and I am using some gui solution. Homebrew still doesn't work and I want to get rid of it. Please help.
After running the commands here, I'm still being told that homebrew is already installed on my system, when I try to do a reinstall.
MacBook-Pro:~ Dygear$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
It appears Homebrew is already installed. If your intent is to reinstall you
should do the following before running this installer again:
rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup
MacBook-Pro:~ Dygear$
Doing what it suggests results in this:
MacBook-Pro:~ Dygear$ rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup
-bash: brew: command not found
Any ideas?
running cd brew --prefix
tells me:
line 13: cd: /Library/Frameworks/Python.framework/Versions/2.7/bin/../Library: No such file or directory
/Library/Frameworks/Python.framework/Versions/2.7/bin/brew: line 23: /brew.rb: No such file or directory
/Library/Frameworks/Python.framework/Versions/2.7/bin/brew: line 23: exec: /brew.rb: cannot execute: No such file or directory
Anything i run with brew tells me the same error. If i trye to reinstall brew using:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
it tells me to run:
rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup
which also tells me the same thing i get told when i run cd brew --prefix
Any ideas?
I am having the same problem as Dygear. Any ideas? I tried running the script and got the following:
$ /bin/sh uninstall_homebrew.sh
brew update first!
but brew update gives me:
$ brew update
-bash: brew: command not found
I tried looking for a /usr/local/Cellar but it doesn't exist.
@somnicide it's a message from the original gist/script above: there is no .git directory.
test -d /usr/local/.git || abort "brew update first!"
If you don't have /usr/local/Cellar, your hombrew installation could be already removed, except if you installed homebrew elsewhere..
This one is insanely dangerous.
- A
$(brew --prefix)
with an blank in it (though it shouldn't have happened in the first place) will kill you. So will a somehow brokenbrew
. - Why
pbcopy
andpbpaste
are used instead of a command substitution & variable assignment is beyond me — system clipboard could change without notice at any time. - There's no
git reset --hard
so somerm
might fail.
In general, when you do rm -rf
in a script, you should be absolutely certain that every single thing you run worked as expected. Test $?
everywhere (or simply wrap your commands in if ! cmd; then
's.
Hello I just went through the original commands and after the command :
rmdir -p bin Library share/man/man1 2> /dev/null
I got this:
[Process completed]
I am relatively new to using Terminal and was wondering what to do next.
Thanks
@sergea29 It closed your terminal session. Just close and re-open your terminal to continue.
Thank you for the help. The original commands were copy/pasted all at once as recommended. So I was surprised it stopped. Before continuing I will input the cd command again. Is there anything else I should do?
please make a proper uninstall
This is awful, and doesn't work.
The test -d /usr/local/.git
line should probably be test -d
brew --prefix/.git
or similar, if it's supposed to handle Homebrew installed somewhere other than /usr/local
. (Which seems like the point of the cd
line.)
For anyone seeking a superior method of removing Homebrew, I highly recommend using the uninstaller script I wrote for this purpose. It is robust, safe, unobtrusive, and extremely user-friendly.
If I use the installer on /usr/local/Cellar/ will it remove all the folders? I have folders such as postgresl, python, and octave. Those I'd like to keep. Will I need to re-install after installing HomeBrew? There are other folders such s gcc, sip, etc. which I presume come with the HomeBrew installation? My reason for removing HomeBrew is that 1) I corrupted the OS on my Yosemite iMac; 2) I had to reinstall the OS; 3) installations of software with HomeBrew still point to the old (corrupt) profile. Thanks from a newbie.
BSL
Also, do I need to remove the .git directory at /usr/local/ as well? Is .git only associated with HomeBrew?
I dot I remove a broken brew ?
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require': /usr/local/Library/Homebrew/extend/pathname.rb:259: invalid multibyte escape: /^\037\213/ (SyntaxError) invalid multibyte escape: /^\037\235/ invalid multibyte escape: /^\xFD7zXZ\x00/ from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in
require'
from /usr/local/Library/Homebrew/global.rb:1:in <top (required)>' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in
require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require' from /usr/local/bin/brew:10:in
hi guys:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
so easy!
thanks jacknagel , that worked for me
the post from self-creative worked for me. sorry to necro a dead thread but i felt that needed to be said.
Thanks self-creative!
Thanks self-creative! Home brew managed to delete a project with my .git when I tried to commit. It installed poorly and reading through this thread was daunting. Glad I read to the bottom.
Thanks, @self-creative! You saved my time a lot.
For me this command worked! 🍺
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
Ah, somehow my $PATH variable was messed up. For some reason was:
I removed /Users/joevanleeuwen/.rbenv/shims: from $PATH and was able to successfully install Homebrew after using the prompted code: