推荐使用NodeSource仓库安装Node.js 20.x LTS版:执行curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -,再运行sudo apt-get install -y nodejs,可确保node与npm版本匹配且为长期支持版本。

直接用包管理器装的 node 常常是旧版本,甚至不带 npm —— 别走系统默认源那条路,尤其在生产或开发环境。
用 NodeSource 官方仓库安装(推荐 Ubuntu/Debian/CentOS)
这是最稳妥的通用方案,能拿到 LTS 或当前稳定版,且 node 和 npm 版本匹配。
以安装 Node.js 20.x LTS 为例(2026 年仍属长期支持):
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs
CentOS/RHEL 用户把 deb.nodesource.com/setup_lts.x 换成 rpm.nodesource.com/setup_lts.x,命令末尾用 yum install 或 dnf install 即可。
- 执行前确认系统已装
curl和sudo - 脚本会自动配置 APT/YUM 源并导入 GPG 密钥;若失败,常见原因是网络被拦截或时间不同步(
date输出不准会导致 HTTPS 握手失败) - 装完验证:
node --version和npm --version必须都输出非空结果
用 nvm 管理多版本(适合开发者频繁切换场景)
当你需要同时跑 Node.js 18、20、22,或调试不同版本兼容性问题时,nvm 是唯一靠谱选择。
安装 nvm(仅当前用户生效):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
然后重启 shell 或运行:source ~/.bashrc(或 ~/.zshrc)
- 装完后执行
nvm install --lts装最新 LTS,或nvm install 22.14.0装指定版本 - 用
nvm use 20切换,nvm alias default 20设为默认 -
nvm不修改系统级/usr/bin/node,所有路径都在~/.nvm/versions/node/下,卸载只需删该目录 - 注意:某些 CI 环境或 systemd service 不读用户 shell 配置,此时
nvm不适用
手动解压二进制包(无 root 权限或定制路径时)
当你只有普通用户权限、不能跑 sudo,或要部署到特定目录(如 /opt/node),就用官方预编译包。
下载并解压(以 Linux x64 为例):
curl -fsSL https://nodejs.org/dist/v20.18.0/node-v20.18.0-linux-x64.tar.xz | tar -xJ -C /tmp mkdir -p ~/local/node mv /tmp/node-v20.18.0-linux-x64/* ~/local/node/
再把 ~/local/node/bin 加进 $PATH(写入 ~/.profile):
export PATH="$HOME/local/node/bin:$PATH"
- 务必检查
~/local/node/bin/node是否有执行权限(ls -l看,没有就chmod +x) - 别漏掉
lib目录 —— 某些原生模块(如sqlite3)运行时依赖它,路径硬编码在二进制里 - 这种安装方式下,
npm是软链到node同目录的,不要单独移动或替换
真正容易被忽略的是:Node.js 的 ABI(Application Binary Interface)和系统 glibc 版本强相关。比如在 CentOS 7(glibc 2.17)上强行运行 Node.js 22+ 编译的二进制包,启动时可能只报 cannot execute binary file: Exec format error 或静默退出——不是权限问题,是 ABI 不兼容。遇到这类情况,优先查 ldd $(which node) | grep libc 和 getconf GNU_LIBC_VERSION。


















