错误:EACCES:权限被拒绝,访问'/usr/local/lib/node_modules'。

718

什么可能导致错误 Error: EACCES: permission denied, access '/usr/local/lib/node_modules'

npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log

29
请查看NPM官方指南,了解如何解决这个问题:https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally - Dzhuneyt
你��否更改所选的正确答案?它完全是错误的(即使有近1K的投票),而且也很危险。人们不知道自己在做什么就复制和粘贴,所以不要引导他们搞乱系统。 - angelcervera
43个回答

-1

-2

在我的情况下,它可以工作,即我想要 npm link,因此当我运行 sudo npm link 时它可以工作

sudo npm install

因为sudo可以让你获得超级用户权限。 超级用户账户通常被称为“管理员”。在Linux/Unix中,超级用户账户通常被命名为“root”。

root用户有权限访问、修改或删除计算机上几乎任何文件。普通用户账户只能访问、修改或删除较少的文件。普通账户的限制可以保护你的计算机免受未经授权或有害程序或用户的侵害。


4
永远不要在 npm 命令中使用 sudo。这可能会导致潜在的恶意程序接管您的计算机。 - shreyasm-dev
@GalaxyCat105 谢谢你的回复。很奇怪,因为我在部署时被教导要在 EC2 实例上使用 sudo 权限。我自己也遇到了一些奇怪的权限问题。我可能需要终止实例并重新开始。您是否建议从全新的 Ubuntu 系统开始,只以非 root 用户身份安装 node、npm、nodemon、nginx 和 git?如果我使用 sudo,在拉取 git 存储库后执行 sudo npm install,我会遇到某些包(例如 bcrypt)的 EACCES 问题...需要搞清楚这些概念。 - twknab

-3

Linux用户的简单解决方案,只需在运行npm的任何命令前面添加sudo即可。


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