安装nvm、node
bash
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
# 安装 Node.js(比如 18)
nvm install 18
nvm use 18
nvm alias default 18注意:
当前遇到的问题是:Node.js 无法运行,因为你的 Linux 系统的 glibc 和 libstdc++ 版本过低,不满足 Node.js 的动态链接库要求。,会出现如下错误:
bash
# npm -v
node: /lib64/libm.so.6: version GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version GLIBC_2.25' not found (required by node)
node: /lib64/libc.so.6: version GLIBC_2.28' not found (required by node)
node: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by node)
[root@tudouweb opt]#
[root@tudouweb opt]# node -v
node: /lib64/libm.so.6: version GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version GLIBC_2.25' not found (required by node)
node: /lib64/libc.so.6: version GLIBC_2.28' not found (required by node)
node: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by node)🧨 问题根源解析
你用 nvm 安装了较新的 Node.js,比如 v18.20.8,但它 依赖的系统动态库版本较高,而你这台服务器的系统(看起来是老版本的 CentOS 7 或 RHEL 7)只支持 glibc 2.17 等低版本,因此运行时报错:
version `GLIBC_2.27' not found
version `CXXABI_1.3.9' not found
version `GLIBCXX_3.4.21' not found✅ 解决方案一(推荐):使用 Node.js 的 预编译二进制 Linux 静态包
你可以手动下载 Node.js 官方编译好的 Linux 版本,这个版本一般包含了必要的依赖,不会引用系统的 glibc(或较少引用)。
1. 下载较低要求的 Node.js LTS
bash
cd /opt
curl -O https://nodejs.org/dist/v18.17.1/node-v18.17.1-linux-x64.tar.xz
tar -xf node-v18.17.1-linux-x64.tar.xz
ln -s /opt/node-v18.17.1-linux-x64 /opt/node如果你已经装过 nvm 的版本,推荐卸载掉或者忽略它。
2. 配置环境变量
bash
vim /etc/profile.d/node.sh添加以下内容:
bash
export PATH=/opt/node/bin:$PATH然后:
bash
source /etc/profile.d/node.sh测试:
bash
node -v
npm -v✅ 解决方案二:在老系统上用 n 工具安装兼容版本
使用 n 替代 nvm,它下载的是 编译后的 Linux binary,比 nvm 更可能兼容旧系统:
bash
npm install -g n
n install 18.17.1
n use 18.17.1但由于你当前的
npm/node本身都运行不了,上面方法执行不了,还是建议先使用【解决方案一】把 Node 静态包装好再说。
✅ 解决方案三(不推荐,风险高):升级 glibc(极其小心)
升级 glibc 是 高风险操作,可能导致系统无法正常启动,强烈不建议在线上服务器操作,除非你很了解 Linux 编译链。
🚀 快速修复建议
走这个方案你会比较快:
bash
cd /opt
curl -O https://nodejs.org/dist/v18.17.1/node-v18.17.1-linux-x64.tar.xz
tar -xf node-v18.17.1-linux-x64.tar.xz
ln -s /opt/node-v18.17.1-linux-x64 /opt/node
echo 'export PATH=/opt/node/bin:$PATH' > /etc/profile.d/node.sh
source /etc/profile.d/node.sh然后检查:
bash
node -v
npm -v