Node.js

【homebrew】「nodebrew install-binary」がnot foundで失敗する場合の対処法

先日、nodebrewでnodeをアップデートしようとしたところ、以下のようなエラーが発生しました。

$ nodebrew install-binary stable
 v12.10.0 is not found

Can not fetch: https://nodejs.org/dist/v12.10.0/node-v12.10.0-darwin-x64.tar.gz

どうやらnodebrewの更新が必要なことは分かったのですが、nodebrewの更新は始めてだったので、少し手間取ってしまいました。

nodebrewにはいつもお世話になっているので、今後もアップデートの機会は多くあるでしょう。
その度に手間取るのも嫌なので、今回対処した手順を記事にして残しておこうと思います。

私の他にも困っている方がいるかもしれませんので、そのような方の手助けにもなればいいなと思います。

そんなわけで、今回は「nodebrew install-binary」がnot foundで失敗した場合の対応方法についてご紹介しますね。

ちなみに、nodebrewはhomebrew経由でインストールしています。
PCはMacBook Pro(Mojave)です。

nodebrewをアップデートする手順

まずは焦らずにhomebrewのアップデートをしましょう。

 $ brew update

次にnodebrewをアップデートします。

 $ brew upgrade nodebrew
 Error: The following directories are not writable by your user:
 /usr/local/lib

You should change the ownership of these directories to your user.
   sudo chown -R $(whoami) /usr/local/lib

And make sure that your user has write permission.
   chmod u+w /usr/local/lib

謎のエラーが表示されました。
どうやら書き込み権限不足で怒られたみたいです。

それでは、sudoコマンドで書き込み権限を追加しましょう。

$ sudo chown -R $(whoami) /usr/local/lib
$ chmod u+w /usr/local/lib

そうしたら、今度こそnodebrewを更新しましょう。

$ brew upgrade nodebrew
 ==> Upgrading 1 outdated package:
 nodebrew 0.9.6 -> 1.0.1
 ==> Upgrading nodebrew 
 ==> Downloading https://github.com/hokaccha/nodebrew/archive/v1.0.1.tar.gz
 ==> Downloading from https://codeload.github.com/hokaccha/nodebrew/tar.gz/v1.0.1
################################################################## 100.0%
 ==> Caveats
 You need to manually run setup_dirs to create directories required by nodebrew:
   /usr/local/opt/nodebrew/bin/nodebrew setup_dirs

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

To use Homebrew's directories rather than ~/.nodebrew add to your profile:
   export NODEBREW_ROOT=/usr/local/var/nodebrew

Bash completion has been installed to:
   /usr/local/etc/bash_completion.d

zsh completions have been installed to:
   /usr/local/share/zsh/site-functions
 ==> Summary
 🍺  /usr/local/Cellar/nodebrew/1.0.1: 8 files, 38.6KB, built in 6 seconds
 ==> brew cleanup has not been run in 30 days, running now…
 Removing: /usr/local/Cellar/nodebrew/0.9.6… (8 files, 37.8KB)
 Removing: /Users/{ユーザー名}/Library/Logs/Homebrew/kotlin… (102B)
 Pruned 7 symbolic links from /usr/local

これで、無事にnodebrewのアップデートに成功しました。

最新のnode安定版を取得する

それでは、もう一度nodeの安定版を取得してみましょう。

$ nodebrew install-binary stable
 Fetching: https://nodejs.org/dist/v12.10.0/node-v12.10.0-darwin-x64.tar.gz
################################################################## 100.0%
Installed successfully

うまくいきましたね。

ちなみに、バージョンを指定してインストールしたい場合は、以下のように末尾に「v◯.◯.◯」というように加えればOKです。

 $ nodebrew install-binary v10.16.3
 Fetching: https://nodejs.org/dist/v10.16.3/node-v10.16.3-darwin-x64.tar.gz
################################################################## 100.0%
Installed successfully

それでは、インストール済みのリストを見てみましょう。

 $ nodebrew list
 v7.2.0
 v8.11.1
 v10.16.3
 v12.10.0

current: v8.11.1

使うバージョンを切り替えてみます。

 $ nodebrew use v10.16.3
 use v10.16.3

これでnodeのバージョンが切り替わったはずです。
確認してみましょう。

$ nodebrew list
 v7.2.0
 v8.11.1
 v10.16.3
 v12.10.0

current: v10.16.3

currentの部分が変わっていますね。
これでようやくnodeのアップデートが完了しました。

npmもアップデートする場合は「npm update -g npm」でOKです。

以下の記事が参考になりました。ありがとうございます。
参考:nodebrewでnodeのバージョンを切り替える方法

終わりに

今回は「nodebrew install-binary」がnot foundで失敗した場合の対応方法についてご紹介しました。

基本的にはnodebrewをアップデートすればOKですよ。

まとめ
  1. homebrewを更新する
  2. nodebrewを更新する
  3. 権限エラーが出たら書き込み権限を追加する

今回はここまでです。それでは。