【问题标题】:`sudo npm install -g npm` is supposedly a bad idea, but doesn't work without `sudo``sudo npm install -g npm` 被认为是个坏主意,但没有 `sudo` 就无法工作
【发布时间】:2020-07-16 01:22:37
【问题描述】:

我一直在努力更新 node / npm 包或 npm 本身。

我有一台 Ubuntu 机器,我在其中安装了全局 npm,我想对其进行更新。

npm install -g npm 导致各种“/usr/local/lib”访问权限被拒绝错误。

我可以使用sudo,但我的默认用户帐户的主目录中的~/.npm 目录归根用户所有,而不是我所有。我认为在安装或更新软件包时会遇到麻烦,而且总体上看起来是个坏主意。我正在使用和运行 npm,而不是 root。

通过搜索,我找到了几个半生不熟的解决方法,但我有一个强烈的印象,我做错了什么。或者,也许我只是误解了手头的问题。我很难相信像npm 这样长期且广泛使用的项目会遭受这些基本缺点?

在常规 linux 环境中全局安装 npm 最正确、最简单的方法是什么?

【问题讨论】:

  • 手动更改 npm 的默认目录总是对我有用 docs.npmjs.com/…
  • 但我认为最好的方法是使用 docker 并且不要在你的系统上安装 npm。

标签: node.js npm global npm-install access-rights


【解决方案1】:

不要使用 Ubuntu 的 node 和 npm 版本。

Ubuntu 的存储库将您锁定在一个 node 版本中,这也限制了您可用的 npm 版本。

使用像nvmn 这样的节点管理器。它们允许使用一个命令更改您的节点版本。

甚至docker containers。使用 Dockerfile,您可以创建模仿生产环境的环境(或者如果您将应用程序部署为 docker 容器,则基本上与生产环境相同)。

【讨论】:

  • 谢谢,将查看 nvm 或 n。至于 docker 容器,难道不是 docker 容器的想法是在一种沙箱中隔离运行,这会使与我的系统的其余部分进行交互变得困难? (抱歉,如果这是一个愚蠢的问题,我的码头工人经验非常有限)
  • @Joey,我也有同样的问题。你能告诉我你最后是怎么解决这个问题的吗?如果唯一的修复涉及安装除了 node.js 和 npm 之外的其他东西,我会感到惊讶。我已经使用 node.js 和 npm 几年了,但我从来没有深入研究过它。因为我有一台新的 Mac,所以我不得不重新安装 node.js 和 npm,这就是我遇到这些问题的原因。我也不明白为什么“sudo”是个坏主意。非常感谢任何帮助。
猜你喜欢
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
  • 2021-05-15
  • 2017-02-14
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
相关资源
最近更新 更多