M1搭載のmacbookproでnodebrewを導入
- 公開日:
- 更新日:
- 文字数:2125文字
M1搭載のmacbookproを買って環境構築をしてると、 Nodebrewでv12、v9のバージョンを使用したいがバージョン16しかダウンロードできなかった。
以下のようなエラーになってしまう。
Can not fetch: https://nodejs.org/dist/v12.18.3/node-v12.18.3-darwin-arm64.tar.gz
前提として、ネイティブ環境(arm64)に対応してないバージョンなので、 Rosetta2を使用してIntel環境(x86_64)で構築し、Itel環境からnodebrewをインストールします。
前提・環境 MacBook Pro (13-inch, M1, 2020) バージョン11.1 ターミナルはiterm2を使用します。(デフォルトのターミナルでも問題なし) Homebrew インストール済み
目標 M1搭載のMacから、homebrew経由でnodebrewをインストールし、 Arm64に対応してないNode.jsのバージョンをインストールしてくる。
Rosettaの設定 アプリケーションからIterm2(ターミナル)のアイコンを右クリックし情報を見るをクリック。 ”Rosettaを使用して開く”のチェックマークにチェックを入れてからIterm2(ターミナル)を起動します。
Intel版Homebrewをインストール
function x() {
console.log(x);
}
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ネイティブ環境とIntel環境の切り替え
typeset -U path PATH
path=(
/opt/homebrew/bin(N-/)
/usr/local/bin(N-/)
$path
)
if (( $+commands[sw_vers] )) && (( $+commands[arch] )); then
[[ -x /usr/local/bin/brew ]] && alias brew="arch -arch x86_64 /usr/local/bin/brew"
alias x64='exec arch -x86_64 /bin/zsh'
alias a64='exec arch -arm64e /bin/zsh'
switch-arch() {
if [[ "$(uname -m)" == arm64 ]]; then
arch=x86_64
elif [[ "$(uname -m)" == x86_64 ]]; then
arch=arm64e
fi
exec arch -arch $arch /bin/zsh
}
fi
setopt magic_equal_subst
source ~/.zshrc
uname -m arm-64 arm-64になってます。
ネイティブ環境の場合 arm-64 Intel環境の場合 x86_64
switch-arch switch-archで切り替えが行えます。
gccのダウンロード
gccとは、GCCとは、GNUプロジェクトが開発および配布している、さまざまなプログラミング言語のコンパイラ集のことである。
switch-archでネイティブ環境にします。 u-name -mでarm-64になっていることを確認
brew install gcc gcc -v gcc -vでインストールされていることを確認
Nodebrewをインストール switch-arch でx86_64に切り替える brew install nodebrew
~/.zshrc export PATH=$HOME/.nodebrew/current/bin:$PATH
source ~/.zshrc
セットアップ。これやらないとインストールできない。 nodebrew setup
nodebrew install-binary v12.18.2
v12.18.2の箇所で対象のバージョンを入力 インストール可能なバージョンを確認したい場合は nodebrew ls-remote nodebrew ls-remoteで確認します。
参考文献 gccっていったいなんなんだ M1 Mac での環境構築の最適解 ArmのMacでiTerm2の設定 NodebrewでNodeをインストールする