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
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.
Instead I did the following:
- To see, if I was affected by this issue in the first place, I ran the command
brew doctorwhich basically told, that yes, I was affected.
- As a next step, I changed the ownership of the directory
sudo 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
sudo chown $(whoami):admin /usr/local/share/man/man8. After this,
brew doctorgave all clear, and I was able to run Homebrew again.
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
/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.
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. ↩