Brew doctor says: "Warning: /usr/local/include isn't writable."

MacosHomebrew

Macos 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.

Issue #3285

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiongagginaView Question on Stackoverflow
Solution 1 - MacosjrwrenView Answer on Stackoverflow
Solution 2 - MacosDurul DalkanatView Answer on Stackoverflow
Solution 3 - MacosAna IsabelView Answer on Stackoverflow
Solution 4 - MacosHuskyView Answer on Stackoverflow
Solution 5 - MacosProView Answer on Stackoverflow
Solution 6 - MacosMahiView Answer on Stackoverflow
Solution 7 - MacoskarlingenView Answer on Stackoverflow
Solution 8 - MacosMaxView Answer on Stackoverflow
Solution 9 - MacosJonathan JamesView Answer on Stackoverflow
Solution 10 - MacosAlexander Salas BastidasView Answer on Stackoverflow
Solution 11 - MacosgugapcView Answer on Stackoverflow
Solution 12 - MacosMiguelView Answer on Stackoverflow
Solution 13 - MacosJayRizzoView Answer on Stackoverflow
Solution 14 - MacoswaldencoderView Answer on Stackoverflow
Solution 15 - MacosSvenView Answer on Stackoverflow
Solution 16 - Macosadd-semi-colonsView Answer on Stackoverflow
Solution 17 - MacosadamkskiView Answer on Stackoverflow
Solution 18 - MacosTarunView Answer on Stackoverflow
Solution 19 - MacosYusufView Answer on Stackoverflow