安装时出现NPM权限错误

4
我正在尝试在我的服务器上安装Yeoman,但是由于某些原因,我一直收到权限被拒绝的错误提示。
$npm install -g yo
/root/.node/bin/yo -> /root/.node/lib/node_modules/yo/cli.js

> yo@1.3.3 postinstall /root/.node/lib/node_modules/yo
> yodoctor

sh: 1: yodoctor: Permission denied

npm ERR! yo@1.3.3 postinstall: `yodoctor`
npm ERR! Exit status 127
npm ERR! 
npm ERR! Failed at the yo@1.3.3 postinstall script.
npm ERR! This is most likely a problem with the yo package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     yodoctor
npm ERR! You can get their info via:
npm ERR!     npm owner ls yo
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 3.13.0-37-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "-g" "yo"
npm ERR! cwd /root
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm ERR! not ok code 0

我尝试重新安装Ubuntu(14.04),但没有任何效果。

4个回答

11

我认为Shantaru是正确的,你需要使用sudo来执行。

尝试这个

sudo npm uninstall -g yo
sudo npm cache clean
sudo npm install -g yo

我几周前遇到了类似的问题,那个方法有效。

编辑:如果那个方法不起作用,请先做这个:

npm config set unsafe-perm true

尝试这个:npm install -g yo@1.3.2 - Kangcor
3
奇怪...请尝试执行以下命令:npm config set unsafe-perm true该命令的作用是设置一个npm配置项,以允许在安装或构建过程中使用root用户权限。 - Kangcor
很高兴看到这个!但我认为那不是正确的解决方案,只是一个临时的解决方法。你的用户和权限有问题...当你想再试一次时,请尝试删除有关节点的所有内容,并按推荐的方式进行全新安装。祝你好运! - Kangcor
npm config set unsafe-perm true 对我来说也解决了这个问题。我正在使用 npm install -g yo 以 root 身份在服务器上安装 yo。 - MangoHands
谢谢,我已经在答案中添加了“set unsafe-perm”选项,以供未来访问者参考。 - Kangcor

1
我曾遇到同样的问题,尝试使用'sudo npm install -g yo'进行安装,但仍然失败。错误消息仍然显示“sh: 1: yodoctor:权限被拒绝”,表明存在权限问题。因此,我尝试完全切换到root用户,然后运行'npm install -g yo'。这对我有用。
如果像我一样,在以这种方式运行安装程序时遇到其他错误,可能是因为您需要先升级npm(运行“npm install -g npm”)。也可能是因为您之前的尝试中部分安装了yo,并导致问题。因此,您可以首先使用'npm remove -g yo'将其删除(仍然作为root用户),然后再使用'npm install -g yo'安装它。
希望这能帮助到某个人。

1

您需要具备root权限才能安装此程序,因此请尝试使用"sudo npm install -g yo"而不是"npm install -g yo"。


0

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