Brew doctor says:
Warning: /usr/local/include isn't writable. This can happen if you "sudo make install" software that isn't managed by Homebrew. If a brew tries to write a header file to this directory, the install will fail during the link step. You should probably chown /usr/local/include
I've tried different commands to solve this but I'm still stuck here.
I'm running homebrew on 10.8.2
Take ownership of it and everything in it.
Mac OS High Sierra or newer: (ty to Kirk in the comments below)
$ sudo chown -R $(whoami) $(brew --prefix)/*
Previous versions of macos:
$ sudo chown -R $USER:admin /usr/local/include
Then do another
$ brew doctor
What worked for me was too
sudo chmod g+w /usr/local
sudo chgrp staff /usr/local
What worked for me was
$ sudo chown -R yourname:admin /usr/local/bin
The only one that worked for me on El Capitan was:
sudo chown -R $(whoami) /usr/local
If you are on High Sierra and experiencing this issue, follow the steps below (Note: /usr/local cannot be chown'd in High Sierra):
sudo mkdir /usr/local/include
sudo chown -R $(whoami) $(brew --prefix)/*
Then try linking with brew link. I was experiencing similar issue and none of the solutions above worked for High Sierra. Hope this helps someone.
For High Sierra:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Then, try your brew commands.
You can alias the command to fix this problem in your .bash_profile
and run it every time you encounter it:
At the end of the file ~/.bash_profile
, add:
alias fix_brew='sudo chown -R $USER /usr/local/'
And now inside your terminal you can run:
$ fix_brew
This worked for me on macOS 10.12
sudo chown -R $(whoami) /usr/local
I had the problem updating homebrew with the following error:
/usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
sudo chown -R $(whoami) /usr/local
For some it's going to be:
sudo chown -R JonJames:admin /usr/local/lib
where "lib" is used as opposed to "bin" or "include" or "whatever else"
The Homebrew Warning "should" explain what specifically is not writable and then give you a command syntax for follow, however you will need to use the ":" as opposed to what the Warning mentions which is actually not correct syntax??
Work for me
$ sudo chown -R $(whoami):admin /usr/local
$ cd /usr/local/Library && git stash && git clean -d -f
First you need to create the directory:
sudo mkdir /usr/local/include
Second:
sudo chown -R $(whoami) $(brew --prefix)/*
Same error on MacOS 10.13
/usr/local/include
and /usr/local/
/usr/lib
were not created. I manually created and brew link
finally worked.
What Worked for me, while having I have more than 1 user on my computer.
Using terminal:
Running brew doctor Seeing multiple /usr/local/... isn't writable error's
Seeing multiple /usr/local/... isn't writable error's
Disabling Mac's System Integrity Protection: https://apple.stackexchange.com/a/208481/55628
Run the following
sudo chown -R $(whoami) /usr/local/*
brew doctor && brew upgrade && brew doctor
Running Macbook Pro OSX High Sierra (version 10.13.3.)
EDIT 1:
FYI - Please be Advised this causes an issue with running MySQL on your MAC. To be able to start my local server, I had to run:
sudo chown -R mysql:mysql /usr/local/mysql/data
After you run this you can start your local MySQL Server.
You need to create /usr/local/include and /usr/local/lib if they don't exists:
$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include
sudo mkdir -p /usr/local/include /usr/local/lib /usr/local/sbin
sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/sbin
This will create all required directories and give it the correct ownership.
After running these commands check with: brew doctor
This works for Mojave.
You need to get control of entire /usr/local
to do that you need to do a recursive chown
under /usr/local
sudo chown -R YOUR_USERNAME:admin /usr/local/
I just want to echo sam9046's modest comment as an alternative and potentially much easier solution that worked in my case: uninstall and install homebrew again from scratch. No sudo commands required.
You can also browse/modify the uninstall script from that link above if you need to ensure it won't affect your previously installed packages. In my case this was just my home machine so I just started over.
I have had this happen in my organization after all our users were bound to active directory (effectively changing the UID from 50x to ######).
Now it is simply a case of changing the ownership of all files where were owned by x to y.
Where 501 is my old numeric user id which is still associated with all the homebrew files.
The old user id can be found using ll /usr/local/Cellar
Now update the ownership sudo find /usr/local -user 501 -exec chown -h $USER {} \;
This way we avoid changing the ownership on files which are not controlled by homebrew or belong to some other system user.
Go into the /bin directory and type:
chown -R $(whoami):admin /usr/local/bin
Success story sharing
$ sudo chown -R `whoami` /usr/local/
?/usr/local
doesn't work anymore. Instead usesudo chown -R $(whoami) $(brew --prefix)/*