Ubuntu 26.04 在其自有软件仓库中提供了 Node.js,但你在那里获得的版本并不总是你的项目所需要的版本。Node.js 在浏览器之外运行 JavaScript,而 npm 安装你的应用程序所依赖的软件包。你一开始就选择的安装方式,决定了日后切换版本需要付出多少工作量。
本指南介绍在 Ubuntu 26.04 上安装 Node.js 和 npm 的三种方式:
- NodeSource 仓库 —— 安装特定的 Node.js 版本。NodeSource 支持 Node.js v26.x、v24.x 和 v22.x。
- nvm(Node 版本管理器)—— 在同一台机器上管理多个 Node.js 版本。这是开发者推荐的方式。
- Ubuntu 仓库 —— 最简单的方式。Ubuntu 26.04 自带 Node.js v22.22.1,适用于许多应用。
选择适合你需求的方式。如果你不确定该安装哪个版本,请查阅你所部署应用的文档。
快速参考
| 任务 | 命令 |
|---|---|
| 通过 NodeSource 安装 | sudo apt install nodejs(添加仓库之后) |
| 通过 nvm 安装 | nvm install --lts |
| 通过 Ubuntu 仓库安装 | sudo apt install nodejs npm |
| 查看 Node.js 版本 | node -v |
| 查看 npm 版本 | npm -v |
| 列出已安装版本(nvm) | nvm ls |
| 切换 Node.js 版本(nvm) | nvm use <version> |
| 设置默认版本(nvm) | nvm alias default <version> |
| 升级到新的大版本(nvm) | nvm install <version> --reinstall-packages-from=<old> |
| 卸载 Node.js | sudo apt remove nodejs 或 nvm uninstall <version> |
从 NodeSource 安装 Node.js 与 npm
NodeSource 维护着一个包含多个 Node.js 版本的 APT 仓库。当你需要特定版本时,使用这种方式。
安装所需的依赖:
sudo apt update
sudo apt install ca-certificates curl gnupg
导入 NodeSource 的 GPG 密钥:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NodeSource 提供以下版本:
- v26.x —— 当前发布版本。
- v24.x —— 最新的 LTS 版本(Krypton)。
- v22.x —— 维护期 LTS 版本(Jod)。
NodeSource 仍在发布 node_20.x 仓库,但 Node.js 20 已于 2026 年结束生命周期,不再接收安全更新。
NodeSource 提供 amd64 和 arm64 架构的 Debian 软件包。如果 dpkg --print-architecture 报告的是其他架构,请改用 Ubuntu 仓库或 nvm。
我们将安装 Node.js 24.x 版本。如有需要,可将 NODE_MAJOR=24 改为你偏好的版本:
NODE_MAJOR=24
ARCH=$(dpkg --print-architecture)
sudo tee /etc/apt/sources.list.d/nodesource.sources > /dev/null <<EOF
Types: deb
URIs: https://deb.nodesource.com/node_${NODE_MAJOR}.x
Suites: nodistro
Components: main
Architectures: ${ARCH}
Signed-By: /etc/apt/keyrings/nodesource.gpg
EOF
安装 Node.js 和 npm:
sudo apt update
sudo apt install nodejs
nodejs 软件包同时包含 node 和 npm 两个二进制文件。
验证安装:
node --version
你应该看到类似下面的输出:
v24.19.0
npm --version
输出会显示随所安装 Node.js 版本一同捆绑的 npm 版本:
11.17.0
npm 安装完成后,请参阅 npm 命令指南,了解软件包安装、更新、脚本以及基于 lockfile 的安装。
要从 npm 编译原生插件,请安装开发工具:
sudo apt install build-essential
使用 NVM 安装 Node.js 与 npm
NVM(Node Version Manager)是一个 bash 脚本,可让你按用户管理多个 Node.js 版本。对于需要在不同版本间切换的开发者,这是推荐的方式。
下载并安装 nvm:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash
不要使用 sudo,否则 nvm 只会为 root 用户启用。
该脚本会将仓库克隆到 ~/.nvm,并向你的 shell 配置文件中添加所需的几行:
=> Close and reopen your terminal to start using nvm or run the following to use it now: 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
要么关闭并重新打开终端,要么运行上面的命令以在当前会话中加载 nvm。
验证安装:
nvm -v
0.40.6
列出所有可用的 Node.js 版本:
nvm list-remote
...
v22.23.2 (Latest LTS: Jod)
...
v24.19.0 (Latest LTS: Krypton)
...
v26.7.0
安装最新的 Node.js 版本:
nvm install node
... Now using node v26.7.0 (npm v11.19.0) Creating default alias: default -> node (-> v26.7.0)
这会安装当前发布版本,而不是 LTS 版本。对于你打算长期运行的服务器,应改为安装一个 LTS 版本,如下所示。
验证安装:
node -v
v26.7.0
安装其他版本:
nvm install --lts
nvm install 22
列出已安装的版本:
nvm ls
-> v22.23.2
v24.19.0
v26.7.0
default -> node (-> v26.7.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v26.7.0) (default)
stable -> 26 (-> v26.7.0) (default)
lts/* -> lts/krypton (-> v24.19.0)
lts/jod -> v22.23.2
lts/krypton -> v24.19.0
箭头(-> v22.23.2)表示当前激活的版本。在本例中,安装 Node.js 22 时它被选为激活版本,但 nvm use 可以选择任何已安装的版本。默认版本在打开新的 shell 时生效。
切换到其他版本:
nvm use 24
Now using node v24.19.0 (npm v11.17.0)
更改默认版本:
nvm alias default 24
从 Ubuntu 仓库安装 Node.js 与 npm
Ubuntu 26.04 在其默认仓库中自带 Node.js v22.22.1。这个版本适用于许多应用,并通过 Ubuntu 接收安全更新。
安装 Node.js 和 npm:
sudo apt update
sudo apt install nodejs npm
Ubuntu 将 nodejs 和 npm 打包为两个独立的软件包,因此这里需要同时写上两个名称。
验证安装:
node -v
v22.22.1
npm -v
9.2.0
Ubuntu 自带的 npm 比 Node.js 22 上游所捆绑的版本更旧,如果某个项目期望使用较新的 npm,这一点值得注意。要从 npm 软件包编译原生插件,还需安装构建工具:
sudo apt install build-essential
升级 Node.js
迁移到更新的发布线,因安装方式不同而有所不同。
如果你是通过 NodeSource 安装的 Node.js,请将仓库文件指向新的发布线,然后重新安装该软件包。以下示例将已有的 Node.js 22 升级到 Node.js 24:
SOURCE_FILE=/etc/apt/sources.list.d/nodesource.sources
[ -f "$SOURCE_FILE" ] || SOURCE_FILE=/etc/apt/sources.list.d/nodesource.list
sudo sed -i 's#node_22\.x#node_24.x#' "$SOURCE_FILE"
sudo apt update
sudo apt install nodejs
APT 会就地替换已安装的 nodejs 软件包,因此你无需先移除旧版本。带有已编译原生插件的软件包可能仍需针对新的 Node.js 版本重新安装。
Ubuntu 仓库只提供随 26.04 一同发布的发布线,因此 sudo apt upgrade 会让你停留在 Node.js 22。要获得更新的版本,请使用上述方法之一切换到 NodeSource 或 nvm。
使用 nvm 时,可在同一条命令中安装新版本并一并带上你的全局软件包:
nvm install 24 --reinstall-packages-from=22
--reinstall-packages-from 选项会从你指定的版本重新安装每一个全局 npm 软件包,省去手动配置的麻烦。旧版本仍保留在磁盘上,因此你可以在测试期间切回它。
故障排查
npm: command not found(通过 Ubuntu 安装后)——Ubuntu 将 Node.js 和 npm 拆分为独立的软件包。请用 sudo apt install npm 安装 npm,或使用 NodeSource 或 nvm(这两者都会将 npm 与 Node.js 捆绑在一起)。
node: command not found(安装 nvm 后)——nvm 从你的 shell 配置文件加载,因此在配置文件运行之前它并不可用。请关闭并重新打开终端,或直接在当前的 shell 中加载它:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm 在一个终端可用,在另一个终端却不行——请检查 nvm 相关行是否添加到了你实际使用的 shell 文件(如 ~/.bashrc、~/.zshrc 或 ~/.profile)中。
添加 NodeSource 后仍安装旧版本——写入仓库文件后请运行 sudo apt update,然后用 apt policy nodejs 确认候选版本。如果 Ubuntu 的软件包仍然胜出,说明仓库文件没有正确写入。
安装全局 npm 软件包时遇到权限错误——不要用 sudo 来绕过,因为这会在你的主目录中留下 root 所有的文件。在开发机上,nvm 能避免该问题,因为全局软件包会安装到你自己的用户账户下。
卸载 Node.js
卸载方式取决于你安装 Node.js 的方法。
NodeSource 或 Ubuntu 仓库:
sudo apt remove nodejs npm
sudo apt autoremove
nvm:
nvm uninstall 24
要彻底移除 nvm,请删除 ~/.nvm 目录,并从你的 ~/.bashrc 或 ~/.zshrc 文件中移除 nvm 相关行。
总结
如果你是要部署而不是做实验,请安装一个 LTS 版本并将其固定。处于 Current 阶段的版本之后可能会进入 LTS,而一条不会进入 LTS 的发布线其支持窗口要短得多。在选定某个版本之前,请查看 Node.js 发布页面以了解其生命周期结束日期。
要使用 PM2 和 Nginx 将 Node.js 投入生产环境,请参阅《如何在 Ubuntu 26.04 上部署 Node.js 应用》。