3

操作系统:Debian 7

node.js 安装在默认文件夹中。

root@10-4-4-159:/usr/local# npm install forever -g

npm 错误!错误:setuid 用户 ID 不存在

npm 错误!在 /usr/local/lib/node_modules/npm/node_modules/uid-number/uid-number.js:44:16

npm 错误!在 ChildProcess.exithandler (child_process.js:635:7)

npm 错误!在 ChildProcess.EventEmitter.emit (events.js:98:17)

npm 错误!在可能关闭(child_process.js:735:16)

npm 错误!在 Process.ChildProcess._handle.onexit (child_process.js:802:5)

npm 错误!如果您需要帮助,可以在以下位置报告此日志:

npm 错误! http://github.com/isaacs/npm/issues

npm 错误!或通过电子邮件发送至:

npm 错误!

npm 错误!系统 Linux 3.2.0-4-amd64

npm 错误!命令“/usr/local/bin/node”“/usr/local/bin/npm”“安装”“永远”“-g”

npm 错误!cwd /usr/本地

npm 错误!节点-v v0.10.21

npm 错误!npm -v 1.3.11

npm 错误!

npm 错误!可以在以下位置找到其他日志记录详细信息:

npm 错误!/usr/local/npm-debug.log

npm 错误!不好的代码 0

4

3 回答 3

8

解决此问题:

在编辑器中打开以下文件:

/usr/local/lib/node_modules/npm/node_modules/uid-number/uid-number.js

转到第 11 行,然后替换uidSupport = process.getuid && process.setuiduidSupport = false

于 2014-01-16T00:21:33.993 回答
2

对于那些只想要一个快速的 shell oneliner 来解决问题的人。
Linux
sed -i'' -r 's/^( +, uidSupport = ).+$/\1false/' /path/to/uid-number.js

自由BSD
sed -i'' -e -E 's/^( +, uidSupport = ).+$/\1false/' /path/to/uid-number.js

于 2016-03-01T16:47:03.403 回答
1

根本原因:npmnobody在调用process.getuid时假定为用户,如果您的系统没有名为nobody 的用户,则此操作失败。

解决方法:创建一个新用户nobody,然后再试一次! sudo adduser --no-create-home --shell /dev/null --disabled-password --disabled-login --gecos '' nobody

于 2017-07-08T02:15:00.857 回答