nodebrew install-binary stableでエラー、error Darwin arm64 is not supported. nodebrewをアップデートで解決

MacのM1でnodebrewを使いNode.jsをインストールすしようとしたら、以下のエラーを吐かれた。

$ nodebrew install-binary stable

結果:

Error: Darwin arm64 is not supported. at /usr/local/bin/nodebrew line 741.

arm64ってことはM1チップ最高じゃんと皮肉を思いつつ、調べるとコンパイルしなければいけないとかなんとか。
コンパイルなんて面倒だなと思いさらに調べるとnodebrew v1.1 だと apple silicon に対応しているらしくコンパイラの必要がないらしい。

バージョンはを確認すると現在1.0.0なので改善する可能性がありそうです。

$ nodebrew -v

結果:nodebrew 1.0.0

コンパイルよりバージョンアップの方が簡単そうとは思ったものの、ググるとNode.jsのアップデート方法しか見つけられず、nodebrewはどうやってアップデートするんだろうと思ったので備忘録を残します。
まったく理解はしていないので、見当違いのことだったら申し訳ないのですが、何かの参考になれば幸いです。

アップデート試行錯誤

homebrewではできないという方もいたのですが面倒だなと思い、ググるとこれでできるっていう人を見かけたので実行。(できなかったのでこの章は飛ばしてください)

$ brew update
$ brew doctor
$ brew upgrade node

結果抜粋:Error: node not installed

あれ、もしかして入ってなかったの?
homebrewに載ってるコマンドでとりあえずもう一回インストールする。

$ brew install nodebrew

なんだかインストールしているご様子。

$ nodebrew -v

結果:nodebrew 1.0.0

変わらないのか。brew upgrade nodeももう一回実行してみたけどエラー。

homebrewがではダメ説が有力な気がするけど、最後の悪あがきでアンインストールして再インストールしてみます。

$ brew rm nodebrew

もう一度インストール。

$ brew install nodebrew

バージョンを確認。

$ nodebrew -v

結果:nodebrew 1.0.0

やっぱりだめなんだ。切ない。いつかの対応に期待ですね。

v1.1へアップデート

よく読めばhomebrewのフォーラムでもGitHubへのリンクが貼ってあった。

gitリンク:https://github.com/hokaccha/nodebrew
参考:【M1 Mac】nodebrew v1.1.0が公式にAppleSiliconに対応したのでNode v16.0.0をインストール

急がば回れ。上記を元に実施。

$ curl -L git.io/nodebrew | perl - setup

.bashrc か .zshrcにパスを通すらしい。

export PATH=$HOME/.nodebrew/current/bin:$PATH

かっこよくターミナルでやりたかったが、わからなかったので.bashrcに直接書く。

ファイルの場所参考:/Users/xxx/.bashrc
(xxxはユーザ名)

.zshrcはなかったので.bashrcにしました。
.zshrc.bashrcもない場合は以下ターミナルで実行で作れます。
(.bashrcの場合のコードなので、.zshrcを作成したい場合は.zshrcに書き換えれば.zshrcも作成できるはず)

$ touch .bashrc

アナログで.bashrcにテキストエディタで「export PATH=$HOME/.nodebrew/current/bin:$PATH」をコピペで追加し、不安なのでターミナルも再起動したけど、.bashrcを再読み込みも実行。

$ source ~/.bashrc

確認で以下を実行。

$ nodebrew help

動いた。

バージョンを確認。

$ nodebrew -v

結果:nodebrew 1.1.0

おー、バージョンが上がった。

念願のnode.jsをインストール

$ nodebrew install-binary stable

結果:

Installed successfully

やった。最初からおとなしくgithubみてやればよかった。

Apple, 日記

Posted by Nakamoto