Skip to content

Instantly share code, notes, and snippets.

@imtapps
Created October 1, 2015 13:56
Show Gist options
  • Save imtapps/369878310cd3877286a7 to your computer and use it in GitHub Desktop.
Save imtapps/369878310cd3877286a7 to your computer and use it in GitHub Desktop.
El Capitan and Homebrew

https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/El_Capitan_and_Homebrew.md#if-usrlocal-does-not-exist

El Capitan & Homebrew

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.

One of the implications of SIP is that you cannot simply create /usr/local if it is removed or doesn't exist for another reason. However, as noted in the keynote, Apple is leaving /usr/local open for developers to use, so Homebrew can still be used as expected.

Apple documentation hints that /usr/local will be returned to root:wheel restricted permissions on every OS X update; Homebrew will be adding a brew doctor check to warn you when this happens in the near future.

If you haven't installed Homebrew in /usr/local or another system-protected directory, none of these concerns apply to you.

This is how to fix Homebrew on El Capitan if you see permission issues:

If /usr/local exists already:

sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local

If /usr/local does not exist:

  • 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 $(whoami):admin /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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment