Mac
homebrew
Sierra

[macOS Sierra] Homebrewのupdateが出来ない。

More than 1 year has passed since last update.


Sierraにしてから久しぶりのupdate。でも出来ない。

$ brew update をすると、

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

↑エラー①とする。

と出てくる。

$ sudo brew update をすると、

Error: Running Homebrew as root is extremely dangerous. As Homebrew does not

drop privileges on installation you are giving all build scripts full access
to your system. As a result of the OS X sandbox not handling the root user
correctly HOMEBREW_NO_SANDBOX has been set so the sandbox will not be used. If
we have not merged a pull request to add privilege dropping by November 1st
2016 running Homebrew as root will be disabled. No Homebrew maintainers plan
to work on this functionality.

rootでhomebrewを動かすのは大変危険やからとアップデートさせてくれない。


/usr/local の所有者を変更する。

エラー①の最後に記載されていたお告げ、


sudo chown -R $(whoami) /usr/local


を行う。

$ sudo chown -R 【username】 /usr/local

※【username】は人それぞれ違うのでご注意を。

chownとそのオプション


再チャレンジ

$ brew update

==> Downloading https://homebrew.bintray.com/bottles-portable/portable-ruby-2.3.3.leopard_64.bottle.1.tar.gz

Warning: Failed to create the file
Warning: /Users/【username】/Library/Caches/Homebrew/portable-ruby-2.3.3.leopard_64
Warning: .bottle.1.tar.gz.incomplete: Permission denied

別のエラーが出た。


エラー文に従って、Homebrewの所有者を確認してみる。

1.ディレクトリ移動

$cd /Users/【username】/Library/Caches/

2.Homebrewディレクトリの詳細情報を確認する。

$ls -l | grep Homebrew

すると、

drwxr-xr-x   7 root      staff      238  7 11  2016 Homebrew

あ、rootが所有しているみたい。

今のままだとrootアカウントでbrew updateでもしない限りはpermission deniedになるわけだ。


Homebrewの所有者を変更する。

$ sudo chown -R 【username】 Homebrew/

その後、確認。

$ ls -l | grep Homebrew

drwxr-xr-x   8 【username】  staff      272 12 28 23:18 Homebrew

よし、変更されている。


再々チャレンジ

$ brew update

==> Downloading https://homebrew.bintray.com/bottles-portable/portable-ruby-2.3.3.leopard_64.bottle.1.tar.gz

######################################################################## 100.0%
==> Pouring portable-ruby-2.3.3.leopard_64.bottle.1.tar.gz
Already up-to-date.
==> Migrating HOMEBREW_REPOSITORY (please wait)...
==> Migrated HOMEBREW_REPOSITORY to /usr/local/Homebrew!
Homebrew no longer needs to have ownership of /usr/local. If you wish you can
return /usr/local to its default ownership with:
sudo chown root:wheel /usr/local

とりあえず成功!

どうやら/usr/localの所有者について言っているがこれについてはまた今度。


参考URL

Mac Os をSierraにしたらHomebrewがupdateできなくなった?

brew install redisでErrorが発生したときの解決策