【问题标题】:Missing write access in mac to /usr/local/lib/node_modulesmac 中缺少对 /usr/local/lib/node_modules 的写访问权限
【发布时间】:2019-07-15 02:04:51
【问题描述】:

我正在尝试安装 Angular cli,但它显示缺少对 /usr/local/lib/node_modules 的写访问权限 那么,我该如何在我的 mac 中修复它,我可能会尝试它,但没有得到准确的答案

 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:
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! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR! 
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).

【问题讨论】:

  • 你试过了吗:sudo npm install
  • 是的,我试试这个
  • 您可以手动在此路径/usr/local/lib/node_modules 创建任何文件或文件夹吗?通常或通过 sudo。
  • 不,它是在安装节点 js 时自动创建的
  • 添加 sudo 对我有用

标签: node.js angular angular-cli node-modules


【解决方案1】:

在终端窗口中运行这些命令:

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/lib/node_modules
sudo chown -R $USER /usr/local/lib/node_modules

【讨论】:

  • 我试过这段代码,但是当我运行第二个命令时,我得到了 chown: /usr/lib/node_modules: No such file or directory
  • 第二个命令可能不起作用,但没关系。第一个和第三个就够了。至少对我有用。
  • 'sudo chown -R $USER /usr/lib/node_modules' - 这个命令并不真正需要,因为本地模块安装在 /usr/local/lib/node_modules 路径中
  • 有人可以确认我的理解吗? sudo:“使用管理员权限执行此操作”// chown:“更新谁拥有此文件/目录作为用户/组”// -R:“此目录及其所有目录和文件”// $USER:全局变量包含实际登录的用户? // 小路。谢谢!
  • @Dimitri - 完全正确($USER 是设置为登录用户名的环境变量)
【解决方案2】:

我遇到了这个问题,我可以通过在每次全局安装时调用 sudo 来解决它。我不同意。

我遵循了n package installation 的建议,以便能够在不使用 sudo 的情况下安装 npm 包。

sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

@jeduard 的答案对我不起作用。

【讨论】:

  • 可选:在另一台机器上我遇到了同样的问题,我忘记了这个解决方案。所以我搜索并从 npm 自己找到了另一个:docs.npmjs.com/…。事实证明它不是那么容易工作(需要不时地'source ~/.profile')。我做了我在这里回答的事情,一切都像魅力一样。我只是分享另一种处理此问题的方法。
  • @jeduard 的答案对我也不起作用。我在 Ubuntu 20
  • 完美运行
【解决方案3】:

解决npm install -g 问题的最佳方法:

https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

这样,您将永远不需要使用SUDOchange permissions

引用

  1. 备份您的计算机。

  2. 在命令行中,在您的主目录中,为全局安装创建一个目录:

    mkdir ~/.npm-global
    
  3. 配置 npm 以使用新的目录路径:

    npm config set prefix '~/.npm-global'
    
  4. 在您喜欢的文本编辑器中,打开或创建一个~/.profile 文件并添加以下行:

    export PATH=~/.npm-global/bin:$PATH
    
  5. 在命令行上,更新你的系统变量:

    source ~/.profile
    

【讨论】:

  • 这对我有用。我使用 Iterm 和 ZSH,所以我还必须执行以下操作,以便每次打开终端时它都能正常工作,而不必每次都运行 source ~/.profile 创建 ~/.profile 我添加了 @987654330 @ 到我的 .zshrc 文件
【解决方案4】:

npm install 之前附加sudo 节省了我的时间:

sudo npm install -g @angular/cli

提供系统密码后,安装应该会顺利完成:

【讨论】:

    【解决方案5】:

    同样的问题。我通过https://nodejs.org/en/download/ 重新安装了最新版本的节点,而不是使用终端。这解决了这个问题。

    【讨论】:

      【解决方案6】:

      我在尝试安装 React 时遇到了类似的问题——权限被拒绝的问题。

      这是 SUDO 可以派上用场的地方,它允许允许的用户以超级用户或其他用户的身份执行命令。想想 Windows 上的“以管理员身份运行”。如果您键入以下命令,它应该允许您以适当的提升访问权限访问所有需要的文件夹。

      sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
      

      Dimitri's 回答中也表示了这一点: https://stackoverflow.com/a/60791736/3803726

      【讨论】:

        【解决方案7】:

        如果您在全局安装 NPM 模块时真的受阻(例如在某些公司笔记本电脑上),您可以将它们全部安装在某个本地文件夹中,然后将路径添加到 node_modules/。 bin/ 到你的 PATH 环境中。

        【讨论】:

          【解决方案8】:

          我遇到了同样的问题。
          在终端输入这个 cmd

          sudo nautilus
          

          之后,它会打开另一个具有 root 访问权限的文件管理器

          在那个类型之后

              sudo apt install nodejs 
              sudo apt install npm 
              sudo npm install -g npm@latest
              sudo npm install -g @angular/cli
              ng --version
          

          【讨论】:

          • 最初的问题似乎与mac相关,而这个答案似乎是指基于Debian的Linux系统。这可能对其他人有帮助,但应明确提及。
          【解决方案9】:

          对于 macOS 尝试运行 -

          sudo chown -R $USER ~/.npm
          sudo chown -R $USER /usr/local/lib/node_modules
          sudo chown -R $USER /usr/local/bin/
          

          如果这仍然不起作用,您可能需要将 sudo 添加到 npm install 命令。

          【讨论】:

            猜你喜欢
            • 2019-03-29
            • 1970-01-01
            • 2022-01-15
            • 2018-08-01
            • 2020-10-25
            • 2020-09-05
            • 1970-01-01
            • 1970-01-01
            • 2021-12-22
            相关资源
            最近更新 更多