操作系统: debian 7
node.js安装在defalut文件夹中。
root@10-4-4-159:/usr/local# npm永久安装-g 国家预防机制错误!错误: setuid用户id不存在。 国家预防机制错误!在/usr/local/lib/node_modules/npm/node_modules/uid-number/uid-number.js:44:16 国家预防机制错误!在ChildProcess.exithandler (child_process.js:635:7) 国家预防机制错误!在ChildProcess.EventEmitter.emit (events.js:98:17) 国家预防机制错误!在maybeClose (child_process.js:735:16) 国家预防机制错误!在Process.ChildProcess._handle.onexit (child_process.js:802:5) 国家预防机制错误!如果需要帮助,可以在以下站点报告此日志: npm错误!http://github.com/isaacs/npm/issues 国家预防机制错误!或者用电子邮件发送给: 国家预防机制错误!国家预防机制错误!SystemLinux3.2.04-AMD 64 国家预防机制错误!命令"/usr/local/bin/node“/usr/local/bin/npm”安装“永久"-g” 国家预防机制错误!cwd /usr/本地 国家预防机制错误!节点-v v0.10.21 国家预防机制错误!npm -v 1.3.11 国家预防机制错误! 国家预防机制错误!其他日志记录详细信息可在以下文件中找到: npm ERR!/usr/local/npm-调试器 国家预防机制错误!不确定代码0
发布于 2014-01-16 00:21:33
致力于这个问题:
在编辑器中打开以下文件:
/usr/local/lib/node_modules/npm/node_modules/uid-number/uid-number.js
Goto 第11行,然后用uidSupport = false
替换uidSupport = process.getuid && process.setuid
发布于 2016-03-01 16:47:03
对于那些只想快速解决问题的人来说。
Linux
sed -i'' -r 's/^( +, uidSupport = ).+$/\1false/' /path/to/uid-number.js
FreeBSD
sed -i'' -e -E 's/^( +, uidSupport = ).+$/\1false/' /path/to/uid-number.js
发布于 2017-07-08 02:15:00
根原因:npm在调用process.getuid时假定nobody
为用户,如果系统中没有名为not的用户,则process.getuid将失败。
解决方案:创建一个名为nobody
的新用户,然后重试!sudo adduser --no-create-home --shell /dev/null --disabled-password --disabled-login --gecos '' nobody
https://stackoverflow.com/questions/19862974
复制相似问题