Homebrew El Capitan

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.

HomebrewCapitan

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:

  1. 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.
  2. As a next step, I changed the ownership of the directory /usr/local by running sudo chown $(whoami):admin /usr/local. Note! Not recursively with switch -R.
  3. Then I rerun brew doctor. In case of my elderly iMac, all was clear, and Homebrew was up and running again.
  4. In case of my MacBook Pro, I needed to run the same for directory /usr/local/share/man/man8 with sudo chown $(whoami):admin /usr/local/share/man/man8. After this, brew doctor gave all clear, and I was able to run Homebrew again.
Capitan

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!

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