M1 Mac上のnvmでx86_64版のNodejs 14をインストールする方法についてメモします。
M1 Mac miniを購入し、デスクトップ開発環境を移行しました。移行前は2015年のMacBook Proを使用していたため、作業環境が大幅に快適になりました。
しかし、まだARM Nativeで動作せず、Rosetta2に頼らなければならないソフトウェアも存在します。nvmでインストールするNodejsもその一つです。nvmで管理できるNodejsのうち、バージョン15未満はARMに対応していません。
ブログを構築しているGatsbyもNodejs 14が推奨されているため、x86_64版のNodejs 14をインストールする必要がありました。
以下にて、Nodejs 15以降はarm64版を、Nodejs 15未満はx86_64版をインストールします。
nvmのインストール #
nvmは、Node.js の複数バージョンのインストール・切り替えを管理するツールです(Pythonのpyenvのようなもの)。 nvmをインストール済みの場合は、このセクションを飛ばしてください。
基本的にnvm公式のインストール手順に従います。
以下のコマンドでnvmをインストールします。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
以下を ~/.zshenv
に追記し、nvmをロードします。
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Nodejsの安定版のインストール #
まず、Nodejsの安定版(v16.3.0)を以下のコマンドでインストールします。
nvm install v16.3.0
nvm use v16.3.0
以下のコマンドで安定バージョンかつARMで動作していることを確認します。
node --version
# v16.3.0
node -p process.arch
# arm64
x86_64版のNodejs 14.xのインストール #
以下のコマンドでx86_64でzshのプロセスを起動します。
arch -x86_64 /bin/zsh
x86_64で起動したzsh上でNodejs 14をインストールします。 今回はv14.17.0をインストールします。
nvm install v14.17.0
以下のコマンドでx86_64版のzshプロセスを終了します。
exit
以下のコマンドでNodejsをv14.17.0に切り替え、x86_64版で動作していることを確認します。
nvm use v14.17.0
# Now using node v14.17.0 (npm v6.14.13)
node --version
# v14.17.0
node -p process.arch
# x64
以下のようにARMに対応しているv16.3.0に切り替えることで、arm64版で動作していることが確認できます。
nvm use v16.3.0
# Now using node v16.3.0 (npm v6.14.13)
node --version
# v16.3.0
node -p process.arch
# arm64