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

npm在没有sudo的情况下抛出错误

闻人德庸
2023-03-14

我刚刚通过nodejs.org上的软件包安装了node和npm,每当我试图搜索或安装npm时,它都会抛出以下错误,除非我执行该命令。我觉得这是一个权限问题?我已经是管理员了。

npm ERR! Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'
npm ERR!  { [Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/Users/chietala/.npm/-/all/.cache.json' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.2.0
npm ERR! command "node" "/usr/local/bin/npm" "search" "bower"
npm ERR! cwd /Users/chietala
npm ERR! node -v v0.10.4
npm ERR! npm -v 1.2.18
npm ERR! path /Users/chietala/.npm/-/all/.cache.json
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/chietala/npm-debug.log
npm ERR! not ok code 0

共有3个答案

昝成弘
2023-03-14

您还需要 目录中的写权限:

sudo chown -R $USER /usr/local/lib/node_modules
邢起运
2023-03-14

在npm目录(codenpm link/code>, 等)中执行编写操作时,需要安装Node时使用的权限。

您可能使用root权限运行节点安装,这就是为什么全局软件包安装要求您是root用户。

不要使用权限进行黑客攻击,正确地安装节点。

在开发计算机上,不应使用根权限安装和运行node,否则 等将需要相同的权限。

NVM(Node Version Manager)允许您安装没有根权限的节点,也允许您安装许多版本的节点,以轻松地发挥它们…非常适合发展。

现在 将不再要求您是root用户。

编辑:另请参阅https://docs.npmjs.com/getting-started/fixing-npm-permissions

从节点发布API获取正式的 包。它不需要包管理器,不需要 访问权限,并且不会更改任何系统权限。

curl -s https://webinstall.dev/node | bash

或者,在Windows10上:

curl.exe -sA "MS" https://webinstall.dev/node | powershell

一样,您可以轻松地切换节点版本:

webi node@v12

(或下面的解决方案3)不同, 包将是单独的(当您切换节点版本时,需要重新安装)。

null

npm install -g prettier

null

null

如果您在OSX或Linux上,您可以为您的全局包创建一个用户专用目录,并设置 以了解如何查找全局安装的包。

查看这篇伟大的文章,了解如何在不使用SUDO的情况下在全球范围内安装npm模块的分步指导。

另请参阅:npm关于修复npm权限的文档。

秋煌
2023-03-14

这看起来像是主目录中的权限问题。要收回。npm目录的所有权,请执行:

sudo chown -R $(whoami) ~/.npm
 类似资料:
  • 我只是通过nodejs.org上的包安装了node和npm,每当我试图搜索或安装带有npm的东西时,它会抛出以下错误,除非我sudo该命令。我觉得这是个权限问题?我已经是管理员了。

  • 问题内容: 我只是通过nodejs.org上的软件包安装了node和npm,并且每当我尝试使用npm搜索或安装某些东西时,都会抛出以下错误,除非我对命令进行了sudo。我觉得这是权限问题?我已经是管理员。 问题答案: 这看起来像您的主目录中的权限问题。要回收 .npm 目录的所有权, 请 执行:

  • 问题内容: 我想像运行shell命令: 不用任何插件就能做到吗?由于Jenkins不是,而是服务帐户,我该如何添加? 问题答案: 首先执行 然后执行 然后注销 对于注销很重要,因为您需要重新评估组成员身份 登录并重试 有用!

  • 我有两个Kafka集群,第一个--使用“SASL SCRAM-SHA-256”机制进行身份验证,另一个--没有为其设置配置。 为了能够连接到Clickhouse中的< code>Kafka-A,我配置了一个< code>config.xml文件,如下所示: 在这一点上,我发现我无法使用Kafka引擎表连接到Kafka-B。当我尝试发生打印以下消息的错误时: storage Kafka(XXX):[

  • 问题内容: 当然,这个问题可能不是树莓派所特有的。另外,我对Linux还比较陌生。 我想编写一个小库(在node.js中,如果有关系的话),以使用sysfs访问树莓派的GPIO。但是,访问sysfs需要sudo访问,这很明显是有原因的。 Quick2Wire似乎有解决方案,但我想更好地理解它,而不仅仅是盲目使用。他们当然使用了C,但是据我了解,代码并不复杂,即使不那么优雅,也可以仅使用bash即可

  • 我正在使用Spring框架和Hibernate开发一个web应用程序。我的问题是,我经常收到404错误,这是因为我在代码库的某个地方犯了一个错误,但控制台中没有异常消息。正因为如此,我很难找到错误在哪里,因为项目已经变得非常大,手动尝试找到问题是不切实际的。我假设是Spring导致了这个问题,所以我的问题是:是否有某种方法可以启用更详细的错误消息?谢谢