Homebrewのアップデート時に書き込み権限がないと言われるエラーについて

By | 2017年1月25日

macOS用のパッケージ管理システムである Homebrew のアップデートコマンド brew update を実行した際に以下のエラーが出る場合があります。

Homebrew の 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. Some versions of the
"InstantOn" component of Airfoil or running Cocktail cleanup/optimizations
are known to do this.

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

[日本語訳]
エラー: ディレクトリ /usr/local に書き込み権限がありません。
たとえ Homebrew のインストール時にこのディレクトリが書き込み可能であったとしても、他のソフトウェアがこのディレクトリの書き込み権限を変更してしまった可能性があります。
Airfoil の "InstantOn" のあるバージョンや Cocktail のコマンド cleanup/optimizations によってこのことが起こることが知られています。

あなたのユーザーアカウントに /usr/local への所有・変更権限を戻す必要があると考えられます。
(以下のコマンドによって)

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

このエラーは上記の通り、何らかの理由で Homebrew のインストール後に /usr/local の書き込み権限が変更されてしまったことによって起こります。

一応、Homebrew で発生している問題を調べるためのコマンドである brew doctor で詳しい状況を確認してみると、以下のように同じ旨の内容が出力されます。

brew doctor によるエラーの詳しい状況の出力

エラーの解決方法

エラーメッセージの通りのコマンドを入力することで、この問題は解決できます。

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

:admin はなくても問題ありませんでした。

$(whoami) という変数にはユーザー名が入っており、そのまま使用できます。

そのため、ユーザー名を知りたいのであれば以下のコマンドを使うことができます。

echo $(whoami)

「Who am I?」

実際に /usr/local への権限を取り戻すコマンドを実行した後、brew update を実行した例を以下に示します。

brew update が成功した例

コマンド実行後、問題なくアップデートが完了していることが確認できます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です