使用 npm 安装电话间隙的 shasum 检查失败

Posted

技术标签:

【中文标题】使用 npm 安装电话间隙的 shasum 检查失败【英文标题】:shasum check failed for installing phone gap using npm 【发布时间】:2014-01-04 22:58:47 【问题描述】:

试了很多次还是这个错误(shasum检查失败)

4784 error Error: shasum check failed for C:\Users\FENGXI~1\AppData\Local\Temp\npm-7004-QbpFFte5\1387269030233-0.28223602287471294\tmp.tgz
4784 error Expected: dee5a33ff04d7217194dc1ad1342e3a441761942
4784 error Actual:   ab7d89ca1f31db14db047d01222dd968649cfb50
4784 error     at C:\Program Files\nodejs\node_modules\npm\node_modules\sha\index.js:38:8
4784 error     at ReadStream.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\sha\index.js:85:7)
4784 error     at ReadStream.EventEmitter.emit (events.js:117:20)
4784 error     at _stream_readable.js:920:16
4784 error     at process._tickCallback (node.js:415:13)
4785 error If you need help, you may report this *entire* log,
4785 error including the npm and node versions, at:
4785 error     <http://github.com/isaacs/npm/issues>
4786 error System Windows_NT 6.1.7600
4787 error command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "phonegap"
4788 error cwd D:\environment\phonegap
4789 error node -v v0.10.23
4790 error npm -v 1.3.17

【问题讨论】:

清理并重新下载。 Phonegap 和 Cordova 出现同样的错误。 如果我的回答对您有帮助,请检查是否已接受 :) 确实有效,谢谢!!! 【参考方案1】:

刚刚遇到同样的问题。 类型:

$ npm install [URL]

在 shasum 检查失败之前使用 URL。 之后再次运行你的安装命令,一切都会继续。

例如。对于 Cordova,它是:

$ npm install https://registry.npmjs.org/npm/-/npm-1.3.19.tgz

【讨论】:

哦亲爱的僵尸耶稣不要这样做!如果 shasum 检查失败,想想这意味着什么? 最好,tarball 是 npm 的损坏版本。在最坏的情况下,它已损坏,也许是恶意的。错误是系统正常工作,并防止您获得虚假位。 (在这种情况下,是的,这是一个错误,并且已经修复。)请告诉你认识的每个人永远不要忽视校验和失败。 但在这种情况下,它显然是因为下载时超时而发生的,并且损坏的包肯定会无法通过检查。独立下载通过检查。不用担心;) @*** 不,在这种情况下,原因是 npm 有一个错误,导致使用不正确的 shasum 进行发布。由于我使用 npm 发布自身,因此它是第一个受影响的包。如果你安装这个版本的 npm,你用它发布的每个包都会有错误的 shasum!太可怕了!【参考方案2】:

这个问题的根本原因是固定的。请不要接受此线程中的建议并破解校验和错误。如果某些东西的校验和被破坏,那么它就不值得信任。充其量,它已经坏了;在最坏的情况下,它被恶意黑客入侵。无论哪种方式,这都不是一个好兆头,错误是系统工作正常。

【讨论】:

那么如何解决这个问题呢?这样,我无法使用 npm 安装 phoneGap ~~ 在下面查看我的评论。独立下载通过检查。【参考方案3】:

只是重新安装,有时由于网络问题。一旦任何模块包未完成,就会抛出 shasum 错误。请重新安装直到成功。

【讨论】:

【参考方案4】:

正如@isaacs 所说,这意味着一个损坏的包。就我而言,这不是问题。它对我有用的是:

首先,尝试:

npm set registry https://registry.npmjs.org/

并重新安装您尝试安装的内容


另一种解决方法,使用 npm 镜像:

npm set registry http://ec2-46-137-149-160.eu-west-1.compute.amazonaws.com

您可以稍后重置此设置

npm set registry https://registry.npmjs.org/

然后正常使用:

npm 安装 [...]


注意:感谢hassanmaher in https://github.com/npm/npm/issues/2701#issuecomment-40927831

【讨论】:

【参考方案5】:

尝试:npm install https://registry.npmjs.org/npm/-/npm-1.3.21.tgz

从“19”改为“21”

【讨论】:

以上是关于使用 npm 安装电话间隙的 shasum 检查失败的主要内容,如果未能解决你的问题,请参考以下文章

解决npm 的 shasum check failed for错误

解决npm 的 shasum check failed for错误

解决npm 的 shasum check failed for错误(npm注册国内镜像介绍)

安装电话间隙 1.4.1.dmg 时 MAC M/C 内部出现错误

npm cache clean --force

无法解决电话间隙 [错误] cmd:命令失败,退出代码为 ENOENT 3