Skip to main content

安装 LTS 版 Node 的几种方式

前置条件:本文所有操作默认在 Ubuntu Server 以非 root 用户身份进行。

若你使用其它 Linux 发行版或其它相关条件不同时,可参考本文操作流程,细节需适当变化。

方式一 - 使用 n

n 本身就是个 node package 因此要先有个可用的 node。

1. 安装默认 sourcelist 的 node 以及 npm

sudo apt-get install npm -y

2. 全局安装 n

sudo npm install -g n

全局安装的 n 默认会放到 /usr/local/lib/node_modules/

这是个需要 root 权限的目录,因此需要 sudo。

3. 安装 LTS 的 Node

sudo n lts

由于是全局安装的 LTS 版 Node,此处依然要 sudo。

4. 使新 Node 生效

安装成功后,会告诉我们 node 的存放目录变化了。

此时两种处理选择:更新本次 shell 对 node 的引用,或者 logout 重新登录一次。

Note: the node command changed location and the old location may be remembered in your current shell.
old : /usr/bin/node
new : /usr/local/bin/node
If "node --version" shows the old version then start a new shell, or reset the location hash with:
hash -r (for bash, zsh, ash, dash, and ksh)
rehash (for csh and tcsh)

其它 n 技巧

  • 查看所有可用版本 n ls-remote --all

方式二 - 使用 nvm 安装 Node

1. 下载并安装 nvm

GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

由于是 github 相关的域名,可能会遇到 dns 的问题,可以手动将本地的备用 DNS 改成 8.8.8.8 解决问题。

例如 Win11 > 网络和 Internet > WLAN > WIFI名称 > DNS 服务器分配 > 编辑 > 手动 > 备用 DNS > 8.8.8.8 下载很慢的话,可以尝试在 /etc/resolv.conf 追加一个 nameserver 8.8.8.8 示例如下:

nameserver 127.0.0.53
nameserver 8.8.8.8
nameserver 114.114.114.114

不要屏蔽默认的 nameserver 127.0.0.53,会导致 apt update 时有 mirrors 相关的网络错误,以及不可预期的网络问题。

改乱了也不怕,重启时会自动恢复默认 nameserver 不用担心。

或者直接通过 https://www.ip-lookup.org/location/raw.githubusercontent.com 查询该域名的真实 IP 并将其添加到 /etc/hosts

可能还会遇到 GnuTLS recv error (-110): The TLS connection was non-properly terminated. 原因未明。

安装成功后关闭命令行窗口,重启一个,测试nvm是否安装成功:

nvm -v

如果没有条件重启窗口,可以执行以下命令立即使用 nvm:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

安装 LTS 稳定版 Node

nvm install --lts

3. 其它用户共享使用 nvm

前置条件:

  • 用户 A 安装好了 nvm 以及 LTS 版的 node
  • 用户 B 未装过 nvm 及 node
  • 用户 A 的 ~/.nvm 目录权限开放

默认装好 node 以后只有本用户有 nvm/node/npm 等命令,其它用户会报错:bash: line 138: npm: command not found

此时用户 B 可执行一行命令获得 nvm 能力:export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

由于 LTS 版的 node 在用户 A 使用 nvm 时已下载安装过,因此用户 B 可以紧接着直接 nvm use --lts 即可。

最终,用户 B 可以正常使用 nvm/node/npm 等命令了。

方式三 - 更新官方 deb 源并安装

change the version as needed ./nsolid_setup_deb.sh 20

curl -SLO https://deb.nodesource.com/nsolid_setup_deb.sh
chmod 500 nsolid_setup_deb.sh
./nsolid_setup_deb.sh 21
apt-get install nodejs -y

https://github.com/nodesource/distributions#installation-scripts