Node.js `sudo npm install-g npm`被认为是一个坏主意,但不是';没有sudo,我不能工作`

Node.js `sudo npm install-g npm`被认为是一个坏主意,但不是';没有sudo,我不能工作`,node.js,npm,global,npm-install,access-rights,Node.js,Npm,Global,Npm Install,Access Rights,我一直在努力更新node/npm包或npm本身 我有一台Ubuntu机器,在那里我安装了一个全局npm,我想更新它 npm安装-g npm导致各种“/usr/local/lib”访问权限被拒绝的错误 我可以使用sudo,但是默认用户帐户主目录中的~/.npm目录归root所有,而不是我所有。我认为这会给安装或更新软件包带来麻烦,而且总的来说似乎是个坏主意。我以我的身份使用和运行npm,而不是以root的身份 在搜索过程中,我发现了一些半生不熟的解决办法,但我有一个强烈的印象,我正在做一些错误的事

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

我有一台Ubuntu机器,在那里我安装了一个全局npm,我想更新它

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

我可以使用
sudo
,但是默认用户帐户主目录中的
~/.npm
目录归root所有,而不是我所有。我认为这会给安装或更新软件包带来麻烦,而且总的来说似乎是个坏主意。我以我的身份使用和运行npm,而不是以root的身份

在搜索过程中,我发现了一些半生不熟的解决办法,但我有一个强烈的印象,我正在做一些错误的事情。或者我只是误解了眼前的问题。我很难相信像
npm
这样一个长期且广泛使用的项目会有这样的基本缺点


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

不要使用Ubuntu的node和npm版本

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

使用节点管理器,如或。它们允许通过一个命令更改节点版本


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

不要使用Ubuntu的node和npm版本

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

使用节点管理器,如或。它们允许通过一个命令更改节点版本


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

手动更改npm的默认目录对我来说总是有效的,但我认为最好的方法是使用docker,不要在系统上安装npm。手动更改npm的默认目录对我来说总是有效的,但我认为最好的方法是使用docker,不要在系统上安装npm。谢谢,我们将研究nvm或n。至于docker容器,docker容器的想法不是孤立地运行在一种沙箱中,这会使它很难与我的系统的其余部分交互吗?(抱歉,如果这是一个愚蠢的问题,我的码头经验非常有限)@Joey,我也有同样的问题。你能告诉我你最后是怎么解决的吗?如果唯一的修复方法是在node.js和npm之外安装其他东西,我会感到惊讶。我已经使用node.js和npm好几年了,但我从未深入研究过它。我必须重新安装node.js和npm,因为我有一个新的Mac,这就是为什么我会遇到这些问题。我也不明白为什么“sudo”是个坏主意。非常感谢您的帮助。谢谢,我们将调查nvm或n。至于docker容器,docker容器的想法不是孤立地运行在一种沙箱中,这会使它很难与我的系统的其余部分交互吗?(抱歉,如果这是一个愚蠢的问题,我的码头经验非常有限)@Joey,我也有同样的问题。你能告诉我你最后是怎么解决的吗?如果唯一的修复方法是在node.js和npm之外安装其他东西,我会感到惊讶。我已经使用node.js和npm好几年了,但我从未深入研究过它。我必须重新安装node.js和npm,因为我有一个新的Mac,这就是为什么我会遇到这些问题。我也不明白为什么“sudo”是个坏主意。非常感谢您的帮助。