事象
nvmを利用して、nodeをinstallしようとすると、エラーが出てインストールに失敗する。
背景
プロジェクトの環境に合わせるため、nodeのバージョンをv18.16.0
からv16.17.1
にしたかった。
発生手順
-
まずは自分の使用環境の確認。
node -v
-> v18.16.0 -
使いたいnodeのバージョンをインストールする。
nvm install 16.17.1
ここで、エラーが発生した。
nvm install 16.17.1
Downloading and installing node v16.17.1...
Downloading https://nodejs.org/dist/v16.17.1/node-v16.17.1-darwin-arm64.tar.xz...
####### 6.1%
######## 6.6%curl: (92) HTTP/2 stream 1 was not closed cleanly: INTERNAL_ERROR (err 2)
Binary download from https://nodejs.org/dist/v16.17.1/node-v16.17.1-darwin-arm64.tar.xz failed, trying source.
grep: /Users/hoge/.nvm/.cache/bin/node-v16.17.1-darwin-arm64/node-v16.17.1-darwin-arm64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.
Detected that you have 8 CPU core(s)
Running with 7 threads to speed up the build
Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!
Downloading https://nodejs.org/dist/v16.17.1/node-v16.17.1.tar.xz...
##################### 17.8%curl: (92) HTTP/2 stream 1 was not closed cleanly: INTERNAL_ERROR (err 2)
Binary download from https://nodejs.org/dist/v16.17.1/node-v16.17.1.tar.xz failed, trying source.
grep: /Users/hoge/.nvm/.cache/src/node-v16.17.1/node-v16.17.1.tar.xz: No such file or directory
Provided file to checksum does not exist.
解決方法
今回は、下記のコマンドだけで解決できました。古いキャッシュが残って悪さをしていたようです。
nvm cache clear
->nvm cache cleared.
nvmが以前にダウンロードしたNode.jsのインストールファイルやその他の一時ファイルをクリアするためのコマンドです。
解説
〜nvm cache clearが必要な理由〜
- インストール失敗のリカバリー
nvmがNode.jsのインストールに失敗すると、途中までダウンロードされた不完全なファイルがキャッシュに残ることがあります。このキャッシュが残ったままだと、次回のインストールでもエラーが発生しやすくなるため、キャッシュをクリアすることで解決できる場合があります。
- バージョンの更新
Node.jsのバージョンが更新されると、同じバージョン番号でも細かいパッチが適用されていることがあります。その場合、古いキャッシュが残っていると、最新の内容にアクセスできないことがあるため、キャッシュクリアが役立ちます。
- ストレージのクリーンアップ
キャッシュには一時的にファイルが保存されるため、キャッシュをクリアすることでディスクスペースの無駄な使用を抑えることができます。
使用環境
macOS Ventura13.4
Apple M1 Pro