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.jssudo 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 应用》。