如何解决npm更新错误? (# npm install npm@latest -g)

9
如何解决npm更新错误?我以root身份运行

# npm install npm@latest -g

usr/lib
└── (empty)

npm ERR! Linux 4.10.14-200.fc25.x86_64
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "npm@latest" "-g"
npm ERR! node v6.10.2
npm ERR! npm  v3.10.10
npm ERR! path /usr/lib/node_modules/npm/node_modules/node-gyp
npm ERR! code EEXIST
npm ERR! errno -17
npm ERR! syscall mkdir

npm ERR! EEXIST: file already exists, mkdir '/usr/lib/node_modules/npm/node_modules/node-gyp'
npm ERR! File exists: /usr/lib/node_modules/npm/node_modules/node-gyp
npm ERR! Move it away, and try again.

npm ERR! Please include the following file with any support request:
npm ERR!     /root/npm-debug.log
npm ERR! code 1

最终遇到的问题是npm无法安装。

日志文件位于https://www.dropbox.com/s/2maxolbxjlnnp7c/npm-debug_error.log.txt?dl=0

我的Node版本是6.10.2,使用Fedora Core 25 64位。NPM版本为3.10.10。

我还在https://github.com/npm/registry/issues/168上创建了一个问题。

现在,npm未安装:

npm

-bash:/usr/bin/npm:没有那个文件或目录

明天我将按照https://github.com/brock/node-reinstall的步骤进行操作,如果没有其他建议则尝试完全卸载和重新安装Node。

我运行此npm更新,因为这是Polymer 2.0中安装polymer-cli的第一步。

https://www.polymer-project.org/2.0/docs/tools/polymer-cli


为什么不尝试使用 npm update npm 呢? - Pablo Darde
请不要以root用户身份运行它! - developer_hatch
我运行这个命令,因为它是安装polymer2的第一步建议。请参阅https://www.polymer-project.org/2.0/docs/tools/polymer-cli。 - Pedro Polonia
我曾经在过去看到一个非常类似的错误(https://github.com/npm/npm/issues/898),那个问题已经关闭了。 - Pedro Polonia
3个回答

7

首先,我不建议使用root用户运行npm命令,请参考以下问题和答案这里的建议。在未来,以root身份运行npm可能会导致问题。

您可以使用以下命令通过npm更新npm:

npm i -g npm-upgrade

如果你遇到了权限错误,点击这里了解如何修复
现在针对你的具体错误,看起来你需要删除该文件夹:
/usr/lib/node_modules/npm/node_modules/node-gyp

我建议您先移除节点,再重新安装。


我已经将node-gyp重命名为node-gyp_old。但现在我没有一个可用的npm。 - Pedro Polonia
如果我是你,我会删除所有文件夹,卸载NPM,然后重新安装,不使用root用户,并且不使用root用户运行更新命令。 - developer_hatch
"以 root 身份执行 'dnf remove nodejs' 和 'dnf install nodejs' 命令可以解决该问题。" - Pedro Polonia
太棒了!如果这个答案对你有用的话,请不要忘记接受它 :) - developer_hatch

6

尝试使用sudo

sudo npm i -g npm@latest

6

我解决了这个问题,以root身份运行

# dnf remove nodejs
# dnf install nodejs

运行时没有遇到问题吗?如果可以正常工作,那太棒了! - developer_hatch
然后在 Fedora 上运行 npm i -g npm-upgrade 就可以了。 - gideon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接