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 的事情 不要将sudo
与npm
、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