Apple Silicon (ARM, M1) のmacOSにaarch64とx86_64のhomebrewを共存させる
ARM版Macで開発を始めている方も多いかと思います。
Rosetta2やDocker Desktop on macのおかげでウェブ開発において全く開発ができないということはないんじゃないかと思います。
一方で、Dockerを使わずにネイティブで開発するにはいくつかの問題もまだ残っています。
例えば、homebrewでpythonのいくつかのバージョンがインストールできないとか、Rustがインストールできないとか、そういう問題にぶつかることがあるでしょう。
そこで、本記事ではhomebrewのx86_64 (intel) 版と、aarch64 (ARM) 版を共存させ、どちらを使うか選べるようにします。
Homebrewのインストール
ARM版homebrewのインストール
こちらは普通にインストールします。ターミナルを開き、aarch64であることを確認してインストールしましょう。
uname -m # "arm64" が表示されることを確認する
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Intel版homebrewのインストール
こちらは手動でインストールします。ARM版は /opt/homebrew/
にインストールされると思うので、Intel版は /opt/homebrew-x86_64/
にインストールすることにしました。
ターミナルをそのままで起動すると、aarch64アーキテクチャで動いてしまうため、x86_64で動くターミナルを作ります。
「ユーティリティ」フォルダにある「ターミナル」を「ターミナル(intel)」とでも名前をつけてコピーします。
新しくコピーした方のターミナルの情報を開き、「Rosettaを利用して開く」にチェックをつけます。
こちらのターミナルを起動すると、x86_64アーキテクチャで動作するターミナルを開くことができます。
ではこちらでもhomebrewをインストールしましょう。
uname -m # "x86_64" が表示されることを確認する
sudo mkdir /opt/homebrew-x86_64
sudo chown `whoami`:staff /opt/homebrew-x86_64
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C /opt/homebrew-x86_64
起動スクリプトをいい感じにする
~/.zprofile
で、稼働中のアーキテクチャによって使うhomebrewが変わるように次のように記述しました。
nodenvなどの初期化は、片方のアーキテクチャでインストールしている場合には片方のアーキテクチャでのみ実行されるようにしましょう。
arch=`uname -m`
if [ "$arch" = "x86_64" ]; then
export PATH=$PATH:/opt/homebrew-x86_64/bin
else
export PATH=$PATH:/opt/homebrew/bin
# eval "$(nodenv init -)" などはどちらかインストールした方に書く
fi
それでも完全ではない...
bisonはaarch64ならインストールできるのに、x86_64ではインストールできないとか...
x86_64でしかインストールできないものがaarch64でしかインストールできないものに依存してたりすると詰む
Author And Source
この問題について(Apple Silicon (ARM, M1) のmacOSにaarch64とx86_64のhomebrewを共存させる), 我々は、より多くの情報をここで見つけました https://qiita.com/chibiegg/items/43b7604a589e3760e88e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .