経緯
しばらく Mac を使っていなかったので、久しぶりに引っ張り出して環境を再構築してみました。ついでなので、Big Sur にしたのですが、今まで使っていた fink
が未だに Big Sur に対応していなかったので、HomeBrew を試してみようかと思いました。
fink
の時は /opt/sw
配下にインストールされていたので、試しに使って不要になったら/opt/sw
ごと消せばよかったのですが、brew
のデフォルトのインストール先は /usr/local
です。/usr/local
は OS のコマンドがインストールされている場所なので、汚したくありません。そこでこちらの記事を参考にインストール先を変更してみることにしました。
何が起きた?
ところが、実際にインストールしてみると下記のエラーが発生してしまい、正常に動作しませんでした。
Error: Cannot install on Intel processor in ARM default prefix (/opt/homebrew)!
どうやら、Apple Silicon が発売されたために、/opt/homebrew
が Apple Silicon 用のデフォルトインストール先になってしまったようです。このディレクトリは ARM アーキテクチャ用に予約されてしまい、Intel アーキテクチャの Mac では使用できなくなってしまったようです。
この問題はこちらの issue でも報告されていました。
別のディレクトリにインストールしてみる
インストール先のディレクトリを変えるだけなので、特に難しいところはありませんが、備忘録代わりにに作業メモを残しておきます。
まずは、インストール先のディレクトリを下記のように作成します。
mkdir -p /opt/homebrew/x86_64
cd /opt/homebrew
あとは、インストールガイドに書いてあるコマンドを、ディレクトリを読み替えて実行していくだけです。インストール先を変えたので、インストールコマンドは下記のように変わります。
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C x86_64
インストールできたら、後処理コマンドを順に実行します。
eval "$(x86_64/bin/brew shellenv)"
brew update --force --quiet
chmod -R go-w "$(brew --prefix)/share/zsh"
これで正常にコマンドをインストールできる環境が整ったはずです。
最後に、毎回パスを通すのは面倒なので .bash_profile
に下記を追記しておくと便利です。(書き込み先ファイルは使用しているシェルに合わせて読み替えてください。)
echo 'eval "$(/opt/homebrew/x86_64/bin/brew shellenv)"' >> ~/.bash_profile
コマンドをビルドできない場合
参考元の記事にも書いてありますが、コマンドインストール時にソースからビルドが必要になることがあります。コマンドラインツールをインストールしていない場合は、先にインストールしておいた方が無難だと思います。(XCodeをインストールしている人はもしかするといらないかも)
sudo xcode-select --install
ビルド時間について
やはり、ソースからビルドが走るので時間がかかってしまいますね。マシンスペックにも依ると思いますが、依存関係が多いと一晩くらいかかることもあります。
fink
の時も apt
を使用しないでインストールする際はビルドが走るので、同じくらい時間がかかっていました。本格的に brew
に乗り換える際は、/usr/local
にインストールし直そうかと思います。
逆に、Apple Silicon に買い替えてしまえば、/usr/local
を汚してしまう問題はパフォーマンスを犠牲にせずに解決しそうなので、その点は嬉しいですね。