Volta error: Could not unpack Node エラー

2021/08/11に公開

概要

  • macOS 10.15.7
  • node 8.17.0 および 14.16.1
  • npm 6.14.14

表題のエラーが出て、Volta で特定のバージョンの node がインストールできない。
自分の場合は 8.17.0

% volta install node@8.17.0
error: Could not unpack Node v8.17.0

Please ensure the correct version is specified.

確かにバージョンの指定は正しいのに・・・

結論

Xcode と XCode Command Line Tools 再インストールで解決

  • node-gyp で必要な msvs_emulation.pyc に問題がある様子
  • node-gyp には独特の依存関係がある様子
  • でも当然ながら両方入っている
    • なら消して入れ直すしか無い → 解決
Could not unpack npm v6.14.14

Please ensure the correct version is specified.

Error cause: failed to unpack `/Users/xxx/.volta/tmp/.tmpHnR8Gg/package/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.pyc`

Error cause: failed to unpack `/Users/xxx/.volta/tmp/.tmpHnR8Gg/package/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.pyc`

Error cause: failed to unpack `package/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.pyc` into `/Users/xxx/.volta/tmp/.tmpHnR8Gg/package/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.pyc`

追記

先述の Xcode 云々をやっても解決しない場合は以下の点も確認してみてください。

sudo をつける

以下のログが出ている場合は、権限関連でunpackできない可能性があります。
sudo をつけて実行してみてください。

volta install node@14.16
"volta" "install" "node@14"
Volta v1.0.4

Could not unpack Node v14.17.5

Please ensure the correct version is specified.

Error cause: failed to unpack `/Users/xxx/.volta/tmp/.tmpi6Vd9U/node-v14.17.5-darwin-x64/bin/node`

Error cause: failed to unpack `/Users/xxx/.volta/tmp/.tmpi6Vd9U/node-v14.17.5-darwin-x64/bin/node`

Error cause: failed to unpack `node-v14.17.5-darwin-x64/bin/node` into `/Users/xxx/.volta/tmp/.tmpi6Vd9U/node-v14.17.5-darwin-x64/bin/node`

Error cause: Resource temporarily unavailable (os error 35)

セキュリティソフトを切る

自分はカスペルスキーを入れていますが、それがオンになっていると sudo しても固まります。

カスペを完全に終了するとなんの問題もなくVolta経由でインストールできます。

参考

https://github.com/nodejs/node-gyp#on-macos

Discussion