概要
題名の通り。
なんのエラーか全然わかりませんでした。
実行したコマンド
$ npm install material-dashboard
# 以下、実行結果
npm ERR! code EINTEGRITY
npm ERR! sha512-de6if9WnelNvQdtLRcyTao3vx1ESjOVsX6tiwAmSjJvfBHcHgKO9wP54jYLfYIn3ILbluqXh1GXPqubNLgH/Kg== integrity checksum failed when using sha512: wanted sha512-de6if9WnelNvQdtLRcyTao3vx1ESjOVsX6tiwAmSjJvfBHcHgKO9wP54jYLfYIn3ILbluqXh1GXPqubNLgH/Kg== but got sha512-8Gs0/uEiiQFzPso2htb5dAgIvnGr2Aoba/KxCRTCJdpqmJ1XYDrZMCqJ/C8S0EVX39uvvRbid7GRBCh+Zy7TGQ==. (5701192 bytes)
npm ERR! A complete log of this run can be found in:
npm ERR! /home/user_name/.npm/_logs/2021-03-20T12_55_13_895Z-debug.log
はい?
対策
以下のような記事が目立ったので、全部やりました。
-
package-lock.json
を削除しろ -
$ npm install -g npm
してバージョンを上げろ -
$ npm cache clean --force
してキャッシュをクリアしよう
どれが効いたのかは正直わかっていません。
少なくとも、どれか1個ではうまくいきませんでした。
他にもいくつかコマンドを打ったので、詳細は実行したコマンドたちを参照していただけたらと思います。
結果(記録している範囲で)
いろんなコマンドを手あたり次第打ったので、どれが効いていてどれが効いてないのかよくわかりません。
が、後で同じ問題にぶつかったときに役に立ちそうなので、発生したエラーと、効いている可能性があるコマンドを記録しておくことにしました。
エラーたち
1. ???
どのコマンドを打った時かは忘れましたが、次のエラーも出ました
npm ERR! invalid json response body at http://registry.npmjs.org/ansi-escapes reason: Unexpected end of JSON input
npm install
コマンドを打った時なのですが、何をinstallしようとしたときだったのかは覚えていません。
少なくとも、次のうちのどちらかでした
$ npm install material-dashboard
$ npm install -g npm
2. npm install -g npm
時のエラー
$ npm install -g npm
# 以下、実行結果
...(行数が多すぎて消えた。少なくとも数百行は出ていた。)
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar TAR_ENTRY_INVALID checksum failure
npm WARN tar zlib: incorrect data check
npm WARN tarball tarball data for npm@https://registry.npmjs.org/npm/-/npm-7.6.3.tgz (sha512-+Cs8TEtkfdQGTIPw8AeqVtNNHyo1Zw8HATzAFFWYnK7jQYgT/CatEy85+BlEoEpqvga2uaKqVrXsTAYj28emjg==) seems to be corrupted. Trying again.
npm ERR! code Z_DATA_ERROR
npm ERR! errno -3
npm ERR! zlib: incorrect data check
npm ERR! A complete log of this run can be found in:
npm ERR! /home/user_name/.npm/_logs/2021-03-20T12_39_47_633Z-debug.log
3. npm cache clean --force
時のエラー
一時的ではありましたが、npm cache clean --force
すら動かなくなったタイミングもありました
その時には、
sudo chown -R 1000:1000 "/home/user_name/.npm"
してくださいというメッセージが出ていたので、その通りに打ちました。
実行したコマンドたち
同じコマンドを何回も順番ぐちゃぐちゃで打っていますので、正しい順番はわかりません
# .npmディレクトリの権限を書き換えるコマンド
# npmのバグで、権限が勝手に書き換わることがあるらしく、何かのエラーが出た時に「このコマンドを打ってね」、と表示されたので打った
# たしか、`$ npm cache clean --force`できなかったときにこのコマンドを打つように促された気がする
$ sudo chown -R 1000:1000 "/home/user_name/.npm"
# npm本体のアップデート用のコマンド
$ npm update -g npm
$ sudo npm i -g npm to update
# npmのキャッシュ問題があるときの対策のよう
$ npm cache clean --force
$ npm cache verify
# npm系コマンドの実行時エラー結果を見る
$ cat /home/user_name/.npm/_logs/ yyyy-MM-ddTHH:mm:ss.SSSZ-debug.log
# なんのコマンドかはわからないが、github issue内の対策として評価が異様に高かったので、何も考えずに打った
$ npm install --update-binary --no-shrinkwrap
ただ、これらのうちどれか、またはいずれかの組み合わせが効いたらしく、無事$ npm install {module}
できるようになりました。
ひとこと
正直、何が原因で、何が効いたのかを調べないといけないとは思ってはいるものの、しばらく触っていなかった環境で起こったことであったため、心当たりは全くなかった。
ということもあり、運任せの対処になってしまっています。
もし、普段よく触っている環境で同じ問題が発生したら、直前の操作などから原因もつかめるかと思うので、そのときはもう少し詳しい因果関係も追記したいと思います。
参考記事
- npm / npm - npm ERR! code EINTEGRITY (npm 5) #16861
- Npm installを実行すると、ERR!が返されます。コードEINTEGRITY`(npm 5.3.0)
- stackoverflow - npm ERR! invalid json response body at http://registry.npmjs.org/ansi-escapes reason: Unexpected end of JSON input
-
cncjs / cncjs - npm v5.0.3 installation integrity checksum failure #172
$ npm install --update-binary --no-shrinkwrap
はここで見つけた -
npm Docs
npmの公式ドキュメントだが、今回は特に役に立たなかった
追記 2021/03/21 22:51
また同じエラーが発生した。
今度は、次の2つのコマンドだけで解決できた。
$ npm cache clean --force
$ npm cache verify
何か環境が壊れている可能性がある...
ちなみに、その後ちょうど以下のメッセージが出たので、ついでにnpm
も更新しておいた
╭───────────────────────────────────────────────────────────────╮
│ │
│ New major version of npm available! 6.14.8 → 7.6.3 │
│ Changelog: https://github.com/npm/cli/releases/tag/v7.6.3 │
│ Run npm install -g npm to update! │
│ │
╰───────────────────────────────────────────────────────────────╯
$ sudo npm install -g npm
npm
のバージョン(6.14.8)が古すぎたことが原因であった可能性はあるかもしれない( ˘ω˘)スヤァ