Brew doctor says: "Warning: /usr/local/include isn't writable."
MacosHomebrewMacos Problem Overview
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
Macos Solutions
Solution 1 - Macos
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
Solution 2 - Macos
What worked for me was too
sudo chmod g+w /usr/local
sudo chgrp staff /usr/local
Solution 3 - Macos
What worked for me was
$ sudo chown -R yourname:admin /usr/local/bin
Solution 4 - Macos
The only one that worked for me on El Capitan was:
sudo chown -R $(whoami) /usr/local
Solution 5 - Macos
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.
Solution 6 - Macos
For High Sierra:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Then, try your brew commands.
Solution 7 - Macos
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
Solution 8 - Macos
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
Solution 9 - Macos
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??
Solution 10 - Macos
Work for me
$ sudo chown -R $(whoami):admin /usr/local
$ cd /usr/local/Library && git stash && git clean -d -f
Solution 11 - Macos
First you need to create the directory:
sudo mkdir /usr/local/include
Second:
sudo chown -R $(whoami) $(brew --prefix)/*
Solution 12 - Macos
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.
Solution 13 - Macos
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 -
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.
Solution 14 - Macos
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
Solution 15 - Macos
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.
Solution 16 - Macos
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/
Solution 17 - Macos
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.
Solution 18 - Macos
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.
Solution 19 - Macos
Go into the /bin directory and type:
chown -R $(whoami):admin /usr/local/bin