Ubuntu18.04运行node/npm报错`GLIBC_2.28' not found求解决
解决Ubuntu 18.04下Node报错
GLIBC_2.28' not found的方案 Ubuntu 18.04默认的GLIBC版本为2.27,你安装的Node版本依赖更高的GLIBC 2.28,导致报错。重装Node无效是因为所选版本仍不兼容系统GLIBC,以下是三种解决途径:
方法一:用nvm管理Node版本(推荐)
nvm可以轻松切换适配低GLIBC的Node版本,操作步骤:
- 彻底卸载现有Node和npm:
sudo apt remove --purge nodejs npm sudo apt autoremove sudo rm -rf /usr/local/bin/node /usr/local/bin/npm /usr/local/lib/node_modules - 安装nvm:
安装完成后,重启终端或执行curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashsource ~/.bashrc使nvm生效。 - 查看兼容的Node版本(Node 16.x及以下版本适配Ubuntu 18.04):
nvm ls-remote - 安装指定长期支持版本,例如v16.20.2:
nvm install 16.20.2 - 设置为默认版本:
nvm alias default 16.20.2 - 验证:
此时GLIBC报错应该消失。node -v npm -v
方法二:手动安装兼容的Node二进制包
若不想使用nvm,可直接下载适配版本:
- 卸载现有Node(同方法一第一步)
- 下载并解压Node 16.x版本的二进制包,复制可执行文件到系统目录:
wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz tar -xf node-v16.20.2-linux-x64.tar.xz sudo cp node-v16.20.2-linux-x64/bin/node /usr/local/bin/ sudo cp node-v16.20.2-linux-x64/bin/npm /usr/local/bin/ - 运行
node -v验证是否正常。
方法三:手动升级GLIBC(风险高,谨慎操作)
Ubuntu 18.04官方不支持升级GLIBC到2.28,手动升级可能导致系统依赖崩溃,仅作为最后选项:
- 下载并编译GLIBC 2.28(不要覆盖系统默认库):
wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz tar -xf glibc-2.28.tar.gz cd glibc-2.28 mkdir build cd build ../configure --prefix=/usr/local/glibc-2.28 make -j$(nproc) sudo make install - 临时指定GLIBC路径运行Node:
不建议全局设置该环境变量,避免影响其他系统程序。LD_LIBRARY_PATH=/usr/local/glibc-2.28/lib:$LD_LIBRARY_PATH node -v
内容的提问来源于stack exchange,提问作者Muhammad Hasnain Tariq
相关产品推荐
相关产品推荐

