Part of the OS X 10.11/El Capitan changes is something called System Integrity Protection or "SIP".
SIP prevents you from writing to many system directories such as /usr
, /System
& /bin
, regardless of whether or not you are root. The Apple keynote is here if you'd like to learn more. As noted in the keynote, Apple is leaving /usr/local
open for developers to use, so Homebrew can still be used as expected.
One of the implications of SIP was that you could not simply create /usr/local
if you had removed it. This issue was fixed with the com.apple.pkg.SystemIntegrityProtectionConfig.14U2076
update.
If you haven't installed Homebrew in /usr/local
or another system-protected directory, this document does not apply to you.
This is how to fix Homebrew on El Capitan if you see permission issues:
sudo chown -R $(whoami):admin /usr/local
First, try to create /usr/local
the normal way:
sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown -R $(whoami):admin /usr/local
If you see permission issues instead try:
- Reboot into Recovery mode (Hold Cmd+R on boot) & access the Terminal.
- In that terminal run:
csrutil disable
- Reboot back into OS X
- Open your Terminal application and execute:
sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown -R $(whoami):admin /usr/local
- Reboot back into Recovery Mode & access the Terminal again.
- In that terminal execute:
csrutil enable
- Reboot back into OS X & you'll be able to write to
/usr/local
& install Homebrew.