# vars to avoid ever using sudo
# for npm
export PATH="$PATH:$HOME/.npm/bin"
# these are for n and where it'll install nodejs:
export N_PREFIX=$HOME/.n
export PATH="$PATH:$N_PREFIX/bin"
# Intructions: https://www.npmjs.com/package/n
# Some people also suggest npm cache clean -f, but (I think) this isn't necessary here.
# I'm using lts for the stable release, for the latest use instead: n latest
npm install -g n
n lts
判决书
在运行了几年之后,我想我可以自信地说没有真正的问题(至少,我没有遇到它们)。唯一的问题是
n
开始工作。为此,请阅读下文。用 npm n 解决它
我以具有 sudo 访问权限的用户身份安装它,我不想通过
sudo
npm 或 node 使其工作(为什么?)。安装 npm:
sudo apt install npm
。为 npm 设置前缀:
npm config set prefix ~/.npm
将 npm 升级到最新版本,
npm i -g npm
.在文件中设置环境变量
~/.profile
(这些更改仅在您注销并再次登录后或运行时才有效source ~/.profile
):n
包升级节点(参见:https ://askubuntu.com/a/663052/808646 ):运行
source ~/.profile
以更新环境变量。这样 bash 将在此会话期间找到路径(即npm
,n
无需注销然后再次登录)。卸载以前由 npm 安装的 nodejs:
sudo apt-get purge nodejs
。解释:这一步很关键。到目前为止,这就是发生的事情:您安装了
npm
,但它实际上安装了 oldnodejs
和 oldnpm
。尽管您据称“安装”了新的nodejs
usingn
,但nodejs
前者优先且n
不能真正安装nodejs
它下载的新的,您必须先删除旧的。但是,如果你在不安装新的情况下删除它
npm
,你将不再拥有npm
,因为卸载旧的nodejs
卸载npm
也旧的(我认为......或者如果你只是再次导出所有变量,它可以工作吗?也许只是n
安装了 nodejs/npm版本就够了吗?)。因此,您必须安装新的npm
(您在第 3 步中执行了此操作)和新的nodejs
使用n
(您在第 6 步中执行了此操作),然后再卸载旧的nodejs
. 您还需要新nodejs
安装的原因是,如果没有 newnodejs
, newnpm
将无法运行,它需要当前nodejs
安装。n
并选择正确的 nodejs 版本(*默认情况下,它将使用与该 nodejs 版本捆绑的 npm,但有一些选项可以防止这种情况发生):node -v
Running
sudo apt install npm
工作正常,但sudo apt-get --purge remove nodejs
也会删除npm
,让你回到开始的地方。所以我看不出有任何方法可以使用非 apt 方法安装最新版本的nodejs
.