LoginSignup
6
3

More than 3 years have passed since last update.

[npm] npm install したら `npm ERR! code EINTEGRITY` などと原因不明のエラーが出た時

Last updated at Posted at 2021-03-20

概要

題名の通り。
なんのエラーか全然わかりませんでした。

実行したコマンド

$ 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}できるようになりました。

ひとこと

正直、何が原因で、何が効いたのかを調べないといけないとは思ってはいるものの、しばらく触っていなかった環境で起こったことであったため、心当たりは全くなかった。

ということもあり、運任せの対処になってしまっています。
もし、普段よく触っている環境で同じ問題が発生したら、直前の操作などから原因もつかめるかと思うので、そのときはもう少し詳しい因果関係も追記したいと思います。

参考記事

追記 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)が古すぎたことが原因であった可能性はあるかもしれない( ˘ω˘)スヤァ

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3