Homebrew 3.0をApple SiliconなMacにインストールする際に/usr/localが出てきたら実行モードを見直そう

3 min読了の目安(約2900字TECH技術記事

Apple SiliconのMacに対応した、Homebrew 3.0.0が2021.2.5にリリースされました。

筆者は以前から手動インストールしてApple Silicon対応版のHomebrewを使っていたのですが、せっかく正式対応してもらえたので、いつもの install.sh でインストールし直すことにしました。

その過程で、少しハマりポイントになりそうな箇所を見つけたので、備忘録として残しておきます。

うっかりRosetta 2の実行環境で /usr/local にインストールしそうになった

たまたまRosetta 2(Intel互換モード)で動いているターミナルを触っているときに、Homebrewのインストールコマンドを実行してしまいました。すると、インストール先の確認フェーズで、次のようなパスが表示されます。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Password:
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following existing directories will be made group writable:
/usr/local/bin
/usr/local/include
/usr/local/lib
/usr/local/share
/usr/local/share/doc
/usr/local/share/man
/usr/local/share/man/man1
==> The following existing directories will have their owner set to nkzn:
/usr/local/bin
/usr/local/include
/usr/local/lib
/usr/local/share
/usr/local/share/doc
/usr/local/share/man
/usr/local/share/man/man1
==> The following existing directories will have their group set to admin:
/usr/local/bin
/usr/local/include
/usr/local/lib
/usr/local/share
/usr/local/share/doc
/usr/local/share/man
/usr/local/share/man/man1
==> The following new directories will be created:
/usr/local/etc
/usr/local/sbin
/usr/local/var
/usr/local/opt
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var/homebrew
/usr/local/var/homebrew/linked
/usr/local/Cellar
/usr/local/Caskroom
/usr/local/Frameworks

Press RETURN to continue or any other key to abort

Intel Macを使い慣れた感覚だと、 /usr/local 以下に出力されるのは真っ当なように思えますが、これは誤りです。

Apple Silicon版のHomebrewは /opt/homebrew を利用する

前述のリリースノート記事でも言及されていますが、v3.0.0以降のHomebrewがApple Silicon向けの動作をする場合、インストール先は /opt/homebrew です。

Apple Silicon is now officially supported for installations in /opt/homebrew.

そのため、 /usr/local にインストールしようとしているのはおかしいのでした。

筆者もこの時点でターミナルの動作モードがIntelだったことに気がついて、Apple Siliconで動作するターミナルに切り替えました。切り替え後の動作は次の通りです。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Password:
==> This script will install:
/opt/homebrew/bin/brew
/opt/homebrew/share/doc/homebrew
/opt/homebrew/share/man/man1/brew.1
/opt/homebrew/share/zsh/site-functions/_brew
/opt/homebrew/etc/bash_completion.d/brew
/opt/homebrew
==> The following new directories will be created:
/opt/homebrew/Caskroom

Press RETURN to continue or any other key to abort

ちゃんと /opt/homebrew 以下にインストールされる形になっています。 /opt/homebrew 以下には手動でインストールした際のフォルダが既にあった可能性があるので、まっさらな状態からインストールすると、もう少し多くのフォルダが表示されるかもしれません。

まとめ

Apple Silicon対応のツールをコマンドラインからインストールする場合は、アクティビティモニタか何かでターミナルの動作モードをよく確認してからにしようね!