当前位置: 首页 > 知识库问答 >
问题:

npm命令-sudo还是no?

曹均
2023-03-14

目前我总是运行sudo npm安装

我想有机会不使用它作为根/管理员。我遵循了一些建议,使用了这个命令sudo chown-R

例如,它是一个输出我的npm安装玉

...
npm http 200 https://registry.npmjs.org/amdefine
npm http GET https://registry.npmjs.org/amdefine/-/amdefine-0.0.5.tgz
npm http 200 https://registry.npmjs.org/amdefine/-/amdefine-0.0.5.tgz
npm ERR! Error: EACCES, symlink '../jade/bin/jade'
npm ERR!  { [Error: EACCES, symlink '../jade/bin/jade'] errno: 3, code: 'EACCES', path: '../jade/bin/jade' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

如你所见,下载开始成功,但随后失败...

我想知道在npm上禁止sudo的最好方法是什么?


共有3个答案

都阳
2023-03-14

您还可以做到:

sudo chown -R $USER /usr/local

并递归地将文件更改为当前用户。

李华茂
2023-03-14

在我看来,指定npm前缀最干净的方法是:

npm config set prefix ~/.node_modules

然后向您添加以下内容。bash_剖面图

export PATH=$HOME/.node_modules/bin:$PATH

现在软件包将安装到您的用户目录,没有任何权限将受到伤害。

编辑:如果无法安装yeoman,请在名为yodoctor的路径目录中创建一个包含以下内容的bash文件

#!/bin/bash
yo doctor

使文件可执行

chmod +x yodoctor

现在你应该可以安装约曼了。

贡可人
2023-03-14

可以(并且建议)在没有sudo的情况下安装npm节点模块。

检查您的/usr/local/share/npm/bin文件夹的权限。我通过brew安装了节点和npm(没有sudo),那个特定的文件夹最终被root拥有。

这将一劳永逸地解决它:

$ sudo chown $(whoami) /usr/local/share/npm/bin

(至于禁止npm使用sudo:你必须为此调整npm。你自己的节点代码可以利用https://npmjs.org/package/sudo-block,npm安装sudo块

编辑:即使这样做有效,我也不再使用-g。改用前缀(见下一个答案),或者最好使用NIXhttps://unix.stackexchange.com/a/381797(即使在OSX上)

 类似资料:
  • NPM和Yarn命令对比 npm 命令 Yarn 命令 备注 npm install yarn install 安装依赖包 (N/A) yarn install —flat 单版本模式 (N/A) yarn install —har 生成har文件,记录安装时网络请求性能 (N/A) yarn install —no-lockfile 不读写lockfile方式 (N/A) yarn instal

  • 例如,“sudo”是ctor的第一个参数、最后一个参数还是其他参数?您如何知道它们的位置以及命令的哪些元素成为的参数?

  • 问题内容: 在熟悉Go和goroutine的过程中,我遇到了执行命令的障碍。这些命令的格式为: 使用从如何在Golang中执行系统命令的代码中获取未知参数的代码,我试图执行此命令,但是我相信由于第一个参数为sudo,该命令未执行,这可能是错误的。我只有两个问题。 当这些命令无法运行时,我将返回“退出状态1”,是否有办法比我正在执行的操作得到更详细的错误?问题二,为什么我使用此脚本会获得“退出状态1

  • 主要内容:sudo命令的配置文件/etc/sudoers我们知道,使用 su 命令可以让普通用户切换到 root 身份去执行某些特权命令,但存在一些问题,比如说: 仅仅为了一个特权操作就直接赋予普通用户控制系统的完整权限; 当多人使用同一台主机时,如果大家都要使用 su 命令切换到 root 身份,那势必就需要 root 的密码,这就导致很多人都知道 root 的密码; 考虑到使用 su 命令可能对系统安装造成的隐患,最常见的解决方法是使用 sudo

  • 问题内容: 我刚刚在新的EC2微型实例上安装了nodejs。 我通常安装它,./configure-> make-> sudo make install。 问题: 当我在ec2-user下运行“ node”时,它运行正常。当我运行“ sudo节点”时,它失败。 我发现该节点位于: 而当前路径是 但是,sudo路径是 然后我尝试编辑根PATH以包含到节点的路径,因此当我以root身份登录时,“ no