Apple released yesterday, September 30th, the new version of OS X called El Capitan. I upgraded today my both machines (iMac and MacBook Pro), and there is one issue with Homebrew, when it is installed on default location on /usr/local
.
This is caused by a change in Apple's security features, called System Integrity Protection, or SIP for short. Basically SIP prevents you from writing to various system locations (e.g. /usr/local
), even if you are root.
There is a workaround in Homebrew's docs, but I suggest not to run it as it is said there. This is because there may be some other files for non-Homebrew installed software, like something for F-Secure, and I really don't want to change the ownership of those files and directories.
Installing Homebrew on Mac OS X El Capitan used to be a easy. But with a new change in OS X El Capitan called SIP (System Integrity Protection) – installing Homebrew has become a bit complicated. STEP 1: Permission Issues /usr/local/. I just upgraded to El Capitan, and when I tried updating brew I got the following error: $ brew update Error: The /usr/local directory is not writable. Even if this directory was writable when you installed Homebrew, other software may change permissions on this directory. Homebrew & El Capitan. GitHub Gist: instantly share code, notes, and snippets.
Instead I did the following:
- To see, if I was affected by this issue in the first place, I ran the command
brew doctor
which basically told, that yes, I was affected. - As a next step, I changed the ownership of the directory
/usr/local
by runningsudo chown $(whoami):admin /usr/local
. Note! Not recursively with switch -R. - Then I rerun
brew doctor
. In case of my elderly iMac, all was clear, and Homebrew was up and running again. - In case of my MacBook Pro, I needed to run the same for directory
/usr/local/share/man/man8
withsudo chown $(whoami):admin /usr/local/share/man/man8
. After this,brew doctor
gave all clear, and I was able to run Homebrew again.
El Capitan Os X
By the way, this is probably necessary to do after every single OS X update in the future, see Apple's dev docs for more.1
El Capitan Download
Why /usr/local
in the first place? Since it is the default location for Homebrew, and I did not know better several years ago. Read more from Hacker News.
Homebrew El Capitan System
Hope this helps, happy brewing!
Update after the release of 10.11.1 on October 21st 2015: The update process did not change the directory permissions or ownership on /usr/local. Phew.
↩