Linux (Ubuntu/CentOS) 环境下安装Node.js的常用方法
详细解析在 Linux (Ubuntu / CentOS) 系统下安装 Node.js 的四种主流方法:NodeSource 官方仓库、NVM 版本管理器、预编译二进制包及系统自带包管理器。包含完整命令、步骤流程图、多版本切换与权限避坑指南。
在 Linux 服务器与开发环境中安装 Node.js 主要有四种路径:追求生产稳定与自动化维护的 NodeSource 官方源、追求多版本随时切换与权限隔离的 NVM 版本管理器、适合内网断网与容器定制的 预编译二进制包,以及仅用于临时简易测试的 系统原生仓库。本文直接给出各方案在 Ubuntu(Debian 系)与 CentOS / Rocky Linux(RHEL 系)上的具体安装步骤、关键配置与决策依据。
一、四种主流安装方式的核心差异与选型路径
不同部署场景对 Node.js 的版本新鲜度、升级周期以及系统操作权限有不同要求。直接使用发行版自带的 apt install nodejs 或 yum install nodejs 虽然最简单,但官方发行版仓库维护策略偏保守,打包的 Node.js 往往滞后于社区 LTS(长期支持版),且通常缺失最新特性与 npm 现代语法支持。
为了避免后续项目依赖安装报错或生产环境版本失配,在执行安装命令前,应先根据服务器定位进行技术选型:
- 生产服务器与 CI/CD 节点:优先选用 NodeSource 官方源。它通过标准系统包管理器(APT / DNF)托管指定主版本(如 Node.js 20.x LTS),并随系统安全补丁平滑升级。
- 个人工作站与团队协作机:强烈推荐选用 NVM (Node Version Manager)。各版本 Node.js 安装在当前用户家目录下,无需 root 提权,且能根据不同项目通过单行命令随时切换运行时。
- 离线内网、安全审计机房或自构建 Docker 镜像:直接下载 官方预编译二进制包(.tar.xz),解压后软链接到系统路径,依赖最少且可精确控制文件落地位置。
- 边缘简易脚本或无特定版本要求的轻量测试:可直接使用 系统自带源。
二、方法一:通过 NodeSource 官方源安装(生产环境推荐)
NodeSource 是 Node.js 官方认可的第三方软件仓库维护团队,专门为 Debian、Ubuntu、RHEL、CentOS 等 Linux 发行版提供最新的 Node.js 稳定打包源。通过 NodeSource 安装后,Node.js 和 npm 会注册进系统包管理体系,日常使用 apt upgrade 或 dnf upgrade 即可保持更新。
1. 在 Ubuntu / Debian 系统下的操作步骤
在 Ubuntu 系统中,需要先安装基础证书与传输工具,再通过官方脚本导入 GPG 签名密钥和软件源列表:
# 步骤 1:更新本地索引并安装必要依赖 sudo apt update sudo apt install -y ca-certificates curl gnupg # 步骤 2:导入 NodeSource Node.js 20.x LTS 源配置脚本 curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - # 步骤 3:使用 APT 安装 Node.js (自动包含对应版本的 npm) sudo apt install -y nodejs
/etc/apt/sources.list.d/nodesource.list 中写入软件源配置并自动执行 apt update。若需要安装其他版本(例如 18.x 或 22.x),只需将命令中的 setup_20.x 替换为对应版本号即可。
2. 在 CentOS / RHEL / Rocky Linux 系统下的操作步骤
CentOS 7 及后续基于 RHEL 体系的系统(CentOS Stream、Rocky Linux、AlmaLinux)使用 RPM 格式软件源:
# 步骤 1:确认 curl 已就绪 sudo yum install -y curl # 步骤 2:运行 NodeSource RPM 仓库配置脚本 (以 20.x LTS 为例) curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash - # 步骤 3:在 CentOS 8/9/Rocky Linux (DNF) 或 CentOS 7 (YUM) 中执行安装 sudo dnf install -y nodejs # 若在较旧的 CentOS 7 系统中,则执行: # sudo yum install -y nodejs
安装完成后,检查版本确认安装成功:
# 验证可执行文件 node -v npm -v # 示例终端输出: v20.12.2 10.5.0
三、方法二:使用 NVM 管理器安装(开发与多版本首选)
NVM(Node Version Manager)是基于 Bash/Zsh 的版本管理脚本。它的核心价值在于将 Node.js 完全解耦于全局操作系统,所有文件下载在用户的 ~/.nvm 目录下,不会污染 /usr/bin,也不需要 sudo 权限。这不仅彻底杜绝了 sudo npm install -g 引发的安全漏洞和权限异常,还允许不同项目使用不同版本的 Node 运行时。
1. 下载并安装 NVM 脚本
在终端中执行官方安装脚本(Ubuntu 与 CentOS 操作一致):
# 下载并执行 NVM 官方安装脚本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
该脚本会将仓库克隆到 ~/.nvm,并在当前的 Shell 配置文件(如 ~/.bashrc、~/.bash_profile 或 ~/.zshrc)末尾自动追加环境变量定义。
2. 载入环境变量并验证
为了让当前终端会话识别 nvm 命令,需要重载 Shell 配置文件,或关闭终端重新登录:
# 使配置立即生效 source ~/.bashrc # 检查 nvm 命令是否可用 command -v nvm # 示例输出(若正常会输出 "nvm"): nvm
3. 使用 NVM 安装与管理 Node.js 版本
NVM 允许一键安装指定版本或长期支持版,并动态切换全局指向:
# 1. 安装最新版 LTS (长期支持版) nvm install --lts # 2. 安装指定具体版本 (例如 Node.js 18.20.2) nvm install 18.20.2 # 3. 查看本地已安装的所有 Node.js 版本 nvm ls # 示例输出: # -> v18.20.2 # v20.12.2 # default -> lts/* (-> v20.12.2) # 4. 切换当前终端所使用的 Node.js 版本 nvm use 20.12.2 # 5. 设置全局默认使用的版本 (新开终端默认生效) nvm alias default 20.12.2
.nvmrc 文件并写入版本号(如 16.20.2),进入该目录后执行 nvm use 即可瞬间就绪。
四、方法三:官方预编译二进制包安装(离线与受限环境)
若目标服务器处于无法连通公网的生产隔离机房,或者系统被限制无法添加第三方 PPA / YUM 源,使用预编译二进制包(.tar.xz)是最稳妥的做法。
1. 获取并解压二进制压缩包
在外网机器下载官方预编译包后上传至目标服务器(以 node-v20.12.2-linux-x64.tar.xz 为例):
# 步骤 1:下载官方编译好的 Linux x64 二进制归档包 wget https://nodejs.org/dist/v20.12.2/node-v20.12.2-linux-x64.tar.xz # 步骤 2:解压到通用的软件存放目录 /usr/local/lib/nodejs/ sudo mkdir -p /usr/local/lib/nodejs sudo tar -xJvf node-v20.12.2-linux-x64.tar.xz -C /usr/local/lib/nodejs/ # 步骤 3:为方便后续目录管理,建议建立规范命名的软链接 sudo ln -s /usr/local/lib/nodejs/node-v20.12.2-linux-x64 /usr/local/lib/nodejs/current
2. 配置全局系统环境变量
将解压目录下的 bin 路径加入系统 PATH 中。编辑 /etc/profile 或 /etc/profile.d/nodejs.sh:
# 创建专用的 profile 配置文件 sudo tee /etc/profile.d/nodejs.sh << 'EOF' export NODEJS_HOME=/usr/local/lib/nodejs/current export PATH=$NODEJS_HOME/bin:$PATH EOF # 让全局配置立即在当前终端生效 source /etc/profile.d/nodejs.sh
或者,也可以直接将关键二进制文件符号链接至 /usr/local/bin:
sudo ln -sf /usr/local/lib/nodejs/current/bin/node /usr/local/bin/node sudo ln -sf /usr/local/lib/nodejs/current/bin/npm /usr/local/bin/npm sudo ln -sf /usr/local/lib/nodejs/current/bin/npx /usr/local/bin/npx
五、方法四:系统自带包管理器安装(仅用于临时测试)
Ubuntu 和 CentOS 的官方镜像源中均内置了 nodejs 软件包。此方法虽然只需敲击单行命令,但缺点十分明显。
1. 具体操作命令
# Ubuntu / Debian 系统: sudo apt update sudo apt install -y nodejs npm # CentOS 7 / 8 / 9 系统: sudo yum install -y nodejs npm # 或在 CentOS 8+/Rocky Linux: # sudo dnf install -y nodejs
- Ubuntu 20.04 自带源提供的 Node.js 版本多为 10.x 或 12.x,Ubuntu 22.04 提供的多为 12.x,早已超出社区维护期(EOL)。
- CentOS 7 官方源中的 Node.js 版本甚至可能停留在 6.x 或 10.x,无法运行任何现代前端构建工具(如 Vite 5+、Webpack 5+ 或 Next.js)。
- 在 Ubuntu 上,系统源常常将
npm单独拆分打包,容易因为系统依赖冲突导致安装失败。
六、安装后的必要配置与常见问题排查
1. 配置 npm 全局安装目录(避免 EACCES 权限错误)
如果使用 NodeSource 或系统包管理器安装,默认的全局模块目录为 /usr/lib/node_modules。当开发者执行 npm install -g pnpm 或 yarn 时,会报出 EACCES: permission denied 错误。许多初学者习惯于滥用 sudo npm install -g,这可能导致恶意 npm 脚本获取系统 root 权限执行任意代码。
推荐的标准解决方案:将 npm 全局目录重定向至普通用户家目录下。
# 1. 创建本地专属全局模块目录 mkdir -p ~/.npm-global # 2. 配置 npm 使用该目录作为全局安装前缀 npm config set prefix '~/.npm-global' # 3. 将新路径写入环境变量配置 (~/.bashrc) echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc source ~/.bashrc # 4. 之后无需 sudo 即可安全安装任何全局工具 npm install -g yarn pnpm
2. CentOS 7 上安装 Node.js 18+ 报错 GLIBC 缺失
Node.js 从 18.x 开始要求系统最低提供 GLIBC_2.28 基础 C 库。由于 CentOS 7 官方内核默认附带的是 GLIBC_2.17,直接运行 Node 18 或 20 会抛出:
# 典型错误示例:
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
应对方案:若宿主机仍为 CentOS 7,受 glibc 强约束,建议生产环境最高安装 Node.js 16.x LTS;若必须运行 Node 18+ 或更高版本,应当升级至 CentOS Stream 9、Rocky Linux 9 或 Ubuntu 22.04+,避免手动强行编译 glibc 引发系统关键服务崩溃。
七、四种安装方式横向对比与总结
综合版本新鲜度、日常维护成本、团队权限管理和实际业务环境,四种方式的综合表现如下表及图示所示:
| 方案 | 首选应用场景 | 优点 | 局限性 |
|---|---|---|---|
| NodeSource 官方源 | 生产集群、标准云服务器、CI/CD 构建机 | 与系统 apt/dnf 无缝集成,官方维护 LTS,适合自动化运维脚本批量分发 | 单机只能绑定一个主版本,需要 root 提权操作 |
| NVM 版本管理器 | 本地开发机、个人测试机、多版本混合维护 | 普通用户独立隔离、命令级秒切版本、各版本全局包不互相冲突 | 对于由 systemd 托管的后台服务守护进程需要额外指定可执行路径 |
| 预编译二进制包 | 内网隔离环境、特殊硬件架构、定制容器 | 开箱即用无外网依赖、解压即部署、路径自定义 | 后续版本升级需手动重新解压或切换符号链接 |
| 系统原生软件源 | 简易命令临时校验、非生产性边缘脚本 | 直接敲命令即装,无需配置任何第三方密钥或脚本 | 版本严重滞后社区,缺失现代特性,不宜作为项目运行基础 |
总体而言,开发测试环境首选 NVM,能够轻松应对不同技术栈项目的版本要求;生产环境标准化部署推荐 NodeSource 官方仓库,配合包管理工具实现可靠的生命周期管理。在受限网络下,官方二进制包则是最为稳健的备选方案。
全栈开发中JavaScript与Java怎么协作?前后端技术栈配合解析
2026-11-04 11:08:24
Node.js官网访问慢?国内镜像加速下载方案
2026-11-03 18:57:24
Node.js 连接 MySQL 数据库实现增删改查操作
2026-11-03 14:31:14
Windows系统安装Node.js:下载、配置与环境验证
2026-11-03 14:15:56
Node.js安装后怎么配置npm国内镜像源加速
2026-11-03 09:19:06








