2021年3月時点でのApple Siliconと開発環境
2021年03月06日
M1搭載Macが発売されてから4ヶ月が経過し、発売当初よりもRosettaに頼る場面は減ってきました。開発環境を適宜見直しており、発売当初に作った環境とはだいぶ違うものになってきているので覚え書き。
Homebrew
Homebrewはバージョン3.0.0でApple Siliconを正式にサポートしました。正式サポート後も/opt/homebrew
の下にインストールされることに変わりはないので、PATHを通す必要があります。
ほとんどのパッケージがApple Siliconネイティブで動作するようになってきており、私はRosettaで動作するパッケージ用のHomebrewは削除してしまいました。
Visual Studio Code
専用ビルド、Insider版とARMビルドが降りてきていましたがついに1.54で安定版がUniversalバイナリになりました。
Webブラウザ
FirefoxとGoogle Chromeはかなり早い段階で対応していましたが、実は他のChromium派生ブラウザが対応しだしたのはここ1ヶ月ほどの間になります。Microsoft Edgeは1月末にリリースされたEdge 88で対応、Vivaldiは2月中旬のスナップショット版でテストがはじまっています。
検証用としてChromiumがほしいだけならungoogled-chromiumのcaskがあるので、それをインストールするのが手っ取り早いでしょう。
Node.js
Apple SiliconネイティブのNode v15系で試しにGatsbyを動かしてみたものの上手くいかなかったため、Node.jsはLTS版をRosetta上で動かす運用にしています。
Node.jsのインストールやバージョン管理はnvm.fishでやっているのですが、現時点ではARM版が存在しないNode.jsの公式ビルドを拾ってこようとしてコケてしまいます。今はとりあえずnvm.fishを改造して運用していますが、v16系が今年の秋にLTSになるのでその頃には運用を見直す必要がありそうです。
Python
pyenvがふつうに使えます。
~/.config/fish/config.fish
の最後の辺りでpyenvを有効化します。
pyenvはバイナリを拾ってくるわけではなく、実行するマシン上でPythonをビルドするようです。M1だと1〜2分程度で済みます。この記事を書いている時点で3.6.13のビルドが通らなかったので、3.7系より後がApple Siliconで使えるボーダーラインだと思います。
Go
Go 1.16で正式サポートになっています。
Rust
Rust 1.49でTier 2サポートになり、動作保障はありませんが公式ビルドが提供されています。RustupでBeta版を選ぶ必要はありません。