npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules 的写访问权限

Posted

技术标签:

【中文标题】npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules 的写访问权限【英文标题】:npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules 【发布时间】:2019-03-29 12:20:36 【问题描述】:

注意:出于安全考虑,请不要使用标记的解决方案,而是使用the highest voted one!


原始问题:

我正在尝试使用此命令安装 monaca。

npm install -g monaca

但是在收到这些错误之后:

npm WARN checkPermissions Missing write access to /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!   stack: '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' 

知道如何解决这个问题吗? 谢谢

【问题讨论】:

见what the npm docs have to say about this。 【参考方案1】:

在安装 npm 后将以下行添加到 ~/.bashrc:

npm set prefix ~/.npm
PATH="$HOME/.npm/bin:$PATH"
PATH="./node_modules/.bin:$PATH"

更改后执行以下行:

source ~/.bashrc

正如@contemplator 所述,避免使用sudo

【讨论】:

注意:不要使用 sudo 如果使用 Zsh,则在安装 npm 后将上面的行添加到 ~/.zshrc。更改后执行以下行:source ~/.zshrc 更类似于 zshrc 的方式是 npm set prefix ~/.npm; path+=$HOME/.npm/bin; path+=./node_modules/.bin(使用 path+= 而不是像在 bash 中那样将现有路径附加到每一行)【参考方案2】:

注意:强烈建议避免将sudo 与 npm 一起使用!

不推荐使用 sudo。它可能会在以后给您权限问题。虽然上述方法有效,但请使用 these instructions 永久解决您的问题。

【讨论】:

另外,使用 sudo 运行不受信任的代码,一些 Rando 上传到 npm,在您的系统上具有 root 权限。【参考方案3】:

对于上面告诉不要使用 sudo 的所有警告,我会添加以下解决方案,在安装 n, node version manager 时对我来说效果很好

sudo chown -R $USER /usr/local/lib/node_modules

取自这里:https://poopcode.com/missing-write-access-to-usr-local-lib-node-modules/

PS:对于我的特定用例,我还需要在之后运行这个

sudo chown -R $USER /usr/local/bin/

【讨论】:

【参考方案4】:

此命令将递归更改指定目录中当前用户的所有者(chown)(-R)

sudo chown -R $USER /usr/local/lib/node_modules

【讨论】:

如果你在你的答案中加上解释,答案会大大改善【参考方案5】:

好吧,我使用--save-dev 并没有全局安装它或使用-g,主要问题发生在您希望它写入默认node_modules 文件夹时。

在检查多个问题 4 小时后,它解决了我的问题。

我什至建议您使用npm init 并创建一个package.json 以进行更好的依赖关系检查,然后再安装run npm。这个视频可以帮助你解决这个问题https://www.youtube.com/watch?v=rTsz09zRuTU

【讨论】:

【参考方案6】:

不要使用sudo

我不知道您的环境上下文,但我在运行 Plesk 的服务器上遇到了错误。

也许以下命令将有助于(通过 SSH)检查权限:

plesk repair fs example.com.

手册:https://docs.plesk.com/en-US/12.5/administrator-guide/plesk-administration/plesk-repair-utility/plesk-repair-utility-file-system.74668/

在我的例子中,node_modules 文件夹是通过 FTP 复制的,因此它有错误的更正。如有必要,您可以删除它并通过 Plesk 使用 Npm installation 按钮安装它。

信息:该按钮仅在文档包含带有信息的package.json 时出现。

【讨论】:

【参考方案7】:

这很简单 你可以使用

sudo npm install -g kazam

苏-

然后

npm install -g kazam

解释

su -

让你成为root,拥有对所有用户的读、写和删除权限 click here for the screen shot showing the error and the solution in the update of npm

this is for ubuntu i don't know is it work for other os

【讨论】:

【参考方案8】:

解决此问题的不明智的方法是使用 sudo:

sudo npm install -g monaca

但是最好在不使用 sudo 的情况下找到解决此问题的方法。

npm install -g less does not work

【讨论】:

请提供完整的基于权限的最终修复,而不仅仅是 sudo 的事情 不要将sudonpm、try this一起使用 你只是说这是不可取的 - 所以不要成为问题的一部分并给出建议。 这当然会工作一次,但 npm 不会正常工作

以上是关于npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules 的写访问权限的主要内容,如果未能解决你的问题,请参考以下文章

npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules 的写访问权限

WARN checkPermissions Missing write access to /usr/local/lib/node_modules

npm WARN npm npm does not support Node.js v16.14.2 npm WARN npm You should probably upgrade to a new

node更新报错:checkPermissions Missing write access to /usr/lib/node_modules/n

text npm WARN版本无效

安装vue命令行工具(CLI),npm WARN