問題
UdemyでRubyonRailsの学習を始めようと思ったら、 まずはMacで動いているNode開発環境を最新状態にする必要があるとのこと。Homebrew
Homebrewの最新バージョンはこちらから確認できます↓ https://github.com/Homebrew/brew/releases2021/12/13時点でのHomebrewの最新バージョンは3.3.7
私の環境でのHomebrewのバージョンは2.6.1
% brew -v Homebrew 2.6.1
Homebrew/homebrew-core (git revision d21e8d; last commit 2020-12-12)
Homebrew/homebrew-cask (git revision 2810c; last commit 2020-12-12)
アップデートする必要があります。
Nodebrew
次はNodebrewNodebrewの最新バージョンはこちらから確認できます↓
https://formulae.brew.sh/formula/nodebrew
2021/12/13時点でのNodebrewの最新バージョンは1.1.0
私の環境でのNodebrewのバージョンは1.0.1
% nodebrew -v nodebrew 1.0.1
こちらもアップデートする必要がありますね。
Node.js
最後にNode.jsですNode.jsの最新バージョンはこちらから確認できます↓
https://nodejs.org/en/download/
2021/12/13時点でのNode.jsの最新バージョンは16.13.1
私の環境でのnode.jsのバージョンは2.6.1
% node -v v10.13.0
はい、こちらもアップデートが必要です。
アップデート
それではアップデートしていきます。Homebrew
手順は簡単です。以下のコマンドを実行するだけbrew update
と、思いきやここで早速問題が発生。
Error: homebrew-core is a shallow clone. To `brew update` first run:
git -C "/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core" fetch --unshallow
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core. We don't do this for you automatically to avoid
repeatedly performing an expensive unshallow operation in CI systems (which
should instead be fixed to not use shallow clones). Sorry for the inconvenience!
このエラーの対処法については以下で詳しく書いています。
brew update実行時にError: homebrew-core is a shallow clone. が出て実行できなかった時の対処法
そしてもう一度アップデートを試してみます。
brew update
% brew -v Homebrew 3.3.7
Homebrew/homebrew-core (git revision e1567b5f249; last commit 2021-12-13)
Homebrew/homebrew-cask (git revision fca92d64f6; last commit 2021-12-13)
無事アップデートできました。
Nodebrew
続いてはNodebrewのアップデートです。以下のコマンドを実行してください。
brew upgrade nodebrew
こちらは問題なく実行できました。
% nodebrew -v
nodebrew 1.1.0
Node.js
最後にNode.jsですまずはnodebrewを使ってインストール可能なバージョンを確認します。
% nodebrew ls-remote
v13.0.0 v13.0.1 v13.1.0 v13.2.0 v13.3.0 v13.4.0 v13.5.0 v13.6.0
v13.7.0 v13.8.0 v13.9.0 v13.10.0 v13.10.1 v13.11.0 v13.12.0 v13.13.0
v13.14.0
v14.0.0 v14.1.0 v14.2.0 v14.3.0 v14.4.0 v14.5.0 v14.6.0 v14.7.0
v14.8.0 v14.9.0 v14.10.0 v14.10.1 v14.11.0 v14.12.0 v14.13.0 v14.13.1
v14.14.0 v14.15.0 v14.15.1 v14.15.2 v14.15.3 v14.15.4 v14.15.5 v14.16.0
v14.16.1 v14.17.0 v14.17.1 v14.17.2 v14.17.3 v14.17.4 v14.17.5 v14.17.6
v14.18.0 v14.18.1 v14.18.2
v15.0.0 v15.0.1 v15.1.0 v15.2.0 v15.2.1 v15.3.0 v15.4.0 v15.5.0
v15.5.1 v15.6.0 v15.7.0 v15.8.0 v15.9.0 v15.10.0 v15.11.0 v15.12.0
v15.13.0 v15.14.0
v16.0.0 v16.1.0 v16.2.0 v16.3.0 v16.4.0 v16.4.1 v16.4.2 v16.5.0
v16.6.0 v16.6.1 v16.6.2 v16.7.0 v16.8.0 v16.9.0 v16.9.1 v16.10.0
v16.11.0 v16.11.1 v16.12.0 v16.13.0 v16.13.1
v17.0.0 v17.0.1 v17.1.0 v17.2.0
たくさん出てきました。
以下のコマンドで先ほど調べた安定版のv16.13.1にアップデートします。
% nodebrew install-binary v16.13.1
バージョンを確認してみましょう。
% node -v v10.13.0
変わってませんね。。。
このような場合は過去にインストールされているnodeにパスが通っている可能性が高いです。
まずはどのnodeにパスが通っているか調べてみましょう。
% which node
/Users/[username]/opt/anaconda3/bin/node
以前pythonを触っていた時にインストールしたnodeにパスが通っていました。
なので.zshrcファイルを編集し、今回nodebrewでインストールしたところにパスを通します。
vim ~/.zshrc
上記コマンドを実行すると以下の表示が出ると思うので、
[E]を押して編集します。
Swap file "~/.zshrc.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
[I]を押してINSERTモードにしたら、一行目のexport~~~の部分を以下に書き換えます。
export PATH=$HOME/.nodebrew/current/bin:$PATH
escボタンを押して、[:wq]で保存したら以下コマンドでシェルを再読み込みします。
source ~/.zshrc
確認してみましょう。
node -v v16.13.1
無事アプデートできていました。
以上でMacのNode.js環境をバージョンアップが完了しました。