CentOS 7 中安全安装 Node.js 22.x

重要提醒
Node.js 18 已于 2025 年 4 月 30 日 EOL(End of Life,官方不再提供安全更新和维护),本文将使用 Node.js 22.x(当前 LTS 版本)。
CentOS 7 默认依赖 glibc 2.17,必须使用带 -glibc-217 后缀的二进制包,否则运行 Node.js 会报错 GLIBC_2.28 not found

为什么必须用 glibc-217 包?

CentOS 7 默认 glibc 版本:2.17 可通过以下命令验证:

ldd --version | head -n1
# ldd (GNU libc) 2.17

普通 Node.js 官方 x64 Linux 包(node-v22.x-linux-x64.tar.gz)在 CentOS 7 上运行会依赖 glibc ≥ 2.28,导致执行 node 时出现:

node: /lib64/libc.so.6: version GLIBC_2.28 not found

官方提供的解决方案是使用专为 CentOS 7 编译的 glibc-217 包: node-v22.x-linux-x64-glibc-217.tar.gz

安装步骤

步骤 1:确认系统环境

# 检查 CentOS 版本
cat /etc/redhat-release
# 输出示例:CentOS Linux release 7.9.2009 (Core)

# 检查 glibc 版本(必须是 2.17)
ldd --version | head -n1
# 输出示例:ldd (GNU libc) 2.17

步骤 2:下载兼容包

# 创建安装目录
mkdir -p /opt/node && cd /opt/node

# 下载 Node.js 22.x glibc-217 兼容包
wget https://unofficial-builds.nodejs.org/download/release/v22.22.0/node-v22.22.0-linux-x64-glibc-217.tar.gz
为什么选这个包?
Node.js 官方下载页 可见: node-v22.22.0-linux-x64-glibc-217.tar.gz 是专为 RHEL/CentOS 7 编译的版本,可直接运行。

步骤 3:解压到系统目录

# 创建版本目录
mkdir -p /opt/node/22.22.0

# 解压 Node.js
sudo tar -xzf node-v22.22.0-linux-x64-glibc-217.tar.gz -C /opt/node/22.22.0 --strip-components=1

⚠️ /opt/node 目录需要有写权限,如果不是 root,请使用 sudo 或更改目录权限。

步骤 4:验证安装

/opt/node/22.22.0/bin/node -v   # 输出:v22.22.0
/opt/node/22.22.0/bin/npm -v    # 输出:对应版本,例如 10.9.4

步骤 5:配置 npm 全局路径

mkdir -p /opt/node/22.22.0/.npm-global

/opt/node/22.22.0/bin/npm config set prefix '/opt/node/22.22.0/.npm-global'

# 添加 npm 全局路径到环境变量(bash 用户)
echo 'export PATH="/opt/node/22.22.0/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# 如果使用 zsh,请修改 ~/.zshrc
# echo 'export PATH="/opt/node/22.22.0/.npm-global/bin:$PATH"' >> ~/.zshrc
# source ~/.zshrc

步骤 6:测试安装

# 创建测试文件
echo 'console.log("Node.js 22.x on CentOS 7 is working!");' > test.js

# 运行测试
/opt/node/22.22.0/bin/node test.js
# 输出:Node.js 22.x on CentOS 7 is working!

常见错误及解决方案

错误现象原因解决方案
node: /lib64/libc.so.6: version GLIBC_2.28 not found使用了普通 x64 包必须使用 glibc-217
command not found: node可执行文件 node 不在 PATH 中使用完整路径 /opt/node/22.22.0/bin/node 或创建软连接
npm install 权限错误未配置 npm 全局路径按步骤 5 配置 /opt/node/22.22.0/.npm-global

为什么推荐此方案

  • 100% 兼容 CentOS 7:官方提供 glibc-217 包,无需自行编译
  • 安全可靠:直接使用官方二进制,避免第三方仓库风险
  • 无依赖冲突:不修改系统 glibc,避免破坏系统稳定性
不推荐方案:
curl -sL https://rpm.nodesource.com/setup_22.x | bash - NodeSource 提供的二进制包编译时依赖较新 glibc(≥2.28),在 CentOS 7 上无法运行,会报错 GLIBC_2.28 not found

参考资料

最后提醒:
不要在生产环境使用 Node.js 18!已 EOL 的版本存在未修复的安全漏洞。
本文提供的 Node.js 22.x 安装方案安全、可验证,可直接部署。