How should I fix this?

Tue Oct 31 21:52:56 mona@dhcp-wifi-8021x-155-41-82-88:~$ brew update && brew upgrade && brew cleanup
Error: /usr/local is not writable. You should change the
ownership and permissions of /usr/local back to your
user account:
  sudo chown -R $(whoami) /usr/local
Wed Nov 01 20:41:30 mona@dhcp-wifi-8021x-155-41-82-88:~$ sudo chown -R $(whoami) /usr/local
Password:
chown: /usr/local: Operation not permitted

sys info:

Wed Nov 01 20:42:36 mona@dhcp-wifi-8021x-155-41-82-88:~$ uname -a
Darwin dhcp-wifi-8021x-155-41-53-197.bu.edu 17.0.0 Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64 x86_64

and

Wed Nov 01 20:44:03 mona@dhcp-wifi-8021x-155-41-82-88:~$ brew config
HOMEBREW_VERSION: >1.2.0 (shallow or no git repository)
ORIGIN: https://github.com/Homebrew/brew.git
HEAD: 38209aadbfe4fd0c6772467c4bc5c63325d53f6c
Last commit: 1 year, 3 months ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 839ca7b9b4ce034b5abdb66cee0ef75bbb675ddf
Core tap last commit: 1 year, 3 months ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: quad-core 64-bit haswell
Homebrew Ruby: 2.3.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
GCC-4.2: build 5666
Clang: 8.0 build 800
Git: 2.9.2 => /usr/local/bin/git
Perl: /usr/bin/perl
Python: /Users/mona/anaconda/bin/python => /Users/mona/anaconda/bin/python3.6
Ruby: /Users/mona/.rvm/rubies/ruby-2.0.0-p353/bin/ruby
Java: 1.8.0_71, 1.7.0_60
macOS: 10.13-x86_64
Xcode: 8.0
CLT: 9.0.1.0.1.1506734476
X11: 2.7.11 => /opt/X11
Wed Nov 01 20:44:25 mona@dhcp-wifi-8021x-155-41-82-88:~$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: /usr/local is not writable.

You should change the ownership and permissions of /usr/local
back to your user account.
  sudo chown -R $(whoami) /usr/local

Warning: Anaconda is known to frequently break Homebrew builds, including Vim and
MacVim, due to bundling many duplicates of system and Homebrew-available
tools.

If you encounter a build failure please temporarily remove Anaconda
from your $PATH and attempt the build again prior to reporting the
failure to us. Thanks!

Warning: python is symlinked to python3
This will confuse build scripts and in general lead to subtle breakage.

Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.

The solution to this problem is simple copy the usr/local pathv then paste it in the dialog box which appears after pressing command+shift+g after your usr folder items simply press command+i and the window which supports will be an info window now scroll to the bottom of the window and check the read and write permisson and if you don't see your username there then add your username/admin account by pressing the add icon

  • Unfortunately in High Sierra it says: operation can't be completed because you don't have the necessary permission. – Barnabas Szabolcs Dec 8 '17 at 0:31
  • What Barnabas said. – Gudlaugur Egilsson Dec 9 '17 at 11:31
  • @BarnabasSzabolcs To solve the operation not permitted issue boot into recovery mode and in a shell window/terminal window which you can access from the utilities option from the menu bar once you are inside the recovery mode screen, now in the terminal window type in this command csrutil disable (there will be a space after csrutil) what this does is that it disables System Integrity Protection which is giving you the operation error after disabling SIP try to do what I have told you to do in my answer! – Sayan Dec 9 '17 at 20:00
  • wow, that sounds like you had to dig deep into this thing... Thanks @Sayan! – Barnabas Szabolcs Dec 10 '17 at 1:43
  • @Sayan you should give disabling SIP as your answer. That was what helped me. – matt Jun 17 at 17:06

Try disabling System Integrity Protection.

  • Disabling SIP indeed worked on my Mojave machine. – jtheletter Nov 14 at 18:42

I was getting this when trying to update brew so the easier way that worked for me:

sudo chown -R $(whoami) $(brew --prefix)/*

  • Did not work for me. Owner of /usr/local/* are changed, but update brew still fails. – Mikrasya Jun 24 at 19:06
  • Could you provide a little more context as to what this does exactly, please? – jtheletter Nov 14 at 18:13

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.