Macのターミナルでbrewコマンドを実行できなくなったときの対処法


Macのターミナルで brewコマンドを実行したら、以下のメッセージが表示されました。

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

Error: Your Xcode (1) is too outdated.
Please update to Xcode 8.3.2 (or delete it).
Xcode can be updated from
  https://developer.apple.com/download/more/

Error: Your Command Line Tools are too outdated.
Update them from Software Update in the App Store.

エラーが3つ出ました。
Google翻訳にかけてみます。

エラー:/usr/localは書き込み可能ではありません。変更する必要があります
/usr/localの所有権とアクセス権
ユーザーアカウント:
sudo chown -R $(whoami)/usr/local

エラー:Xcode(1)は古すぎます。
Xcode 8.3.2に更新してください(または削除してください)。
Xcodeはから更新することができます
https://developer.apple.com/download/more/

エラー:コマンドラインツールが古すぎます。
App StoreのSoftware Updateからアップデートしてください。

結論からいうと、
これらのエラーをひとつずつ解消しようとすることに意味はありませんでした。

環境

・macOS Catalina 10.15.3

解決方法

Homebrew公式サイトに記載されている、以下のコマンドを実行し、
再インストールします。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

先ほどのエラーとは全く関係のない、Homebrewの更新であっさり解決です。

今後もOSのバージョンが上がるたびに同じ現象が起こるかもしれないので、
このことを覚えておきたいと思って記事にしました。

また、エラーを解消しようと試してみたことを、
このあとに記載していますので、ご興味ある方はご覧ください。

エラー解消のために試したこと

1./usr/localの権限変更

メッセージにかかれている指示のとおり、以下を入力して実行しました。

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

パスワードの入力を求められるのでパスワードを入力すると、
以下のようなメッセージが返ってきました。

chown: /usr/local: Operation not permitted

操作は許可されていません。

と返ってきてしまいました。
ひとまず、次のエラーの解消を試みます。

2.Command Line Tools for Xcodeのアップデート

最初、Xcode本体のことかと思いましたが、バージョンアップしても解決せず、
どうやらコマンドラインのことだったようです。

以下のページで dmgファイルを取得しました。
https://developer.apple.com/download/more/
command line tools で検索すると、過去のバージョンを含めて表示されます。

Xcode本体のバージョンは 11.4.1 ですが、
エラーメッセージにはXcode 8.3.2と書かれていたので、
まずは、そのバージョンをインストールしてみました。
しかし、OSのバージョンに対応していないということでインストール失敗。
そのあと 11.4.1 をインストールしたのですが、これでもエラーは解消されませんでした。

謝辞

執筆にあたり、こちらを参考にさせていただきました。ありがとうございます。
HighSierraでHomebrewのbrew install、brew updateに失敗する場合の対処