【CentOS7.6】 安装nodejs18.x.x,npm -v 报错:/lib64/libm.so.6: version `GLIBC_2.27‘ not found 解决办法

特别感谢,本篇是 博主 断剑zou天涯 的内容的 添加了 “很多坑的解决办法” 的版本。
站在巨人肩膀上。
参考原文:
node: /lib64/libm.so.6: version `GLIBC_2.27‘ not found问题解决方案

一、报错

1.报错内容
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)

在这里插入图片描述

2.原因

从 nodejs 18.x.x 开始,都需要 GLIBC_2.27 的支持,然而我们没有这个版本

二、解决

1.在 /usr/local 目录下载 GLIBC_2.28(高版本)
cd /usr/local
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz

如果执行下载命令,发现无法下载,那么就需要手动下载,此处需要使用魔法!

2.解压,并且创建 build 目录
tar xf glibc-2.28.tar.gz 
cd glibc-2.28/ && mkdir build  && cd build
3.更新 glibc
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

注意,此处可能会发生报错:

configure: error: 
*** These critical programs are missing or too old: make bison compiler
*** Check the INSTALL file for required versions.
4.更新 gcc
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc*

注意,执行 yum install -y devtoolset-8-gcc*,可能会发生报错,报错和解决办法参阅:
请下面两篇一起看,否则你改完步骤1的 .repo 文件,步骤2里还要改。

步骤1(配置 .repo 镜像源):https://blog.csdn.net/qq_43768851/article/details/140112143?spm=1001.2014.3001.5501
步骤2(解决 GPGKEY 不匹配问题):https://blog.csdn.net/qq_43768851/article/details/140113001?spm=1001.2014.3001.5501

5.备份原有的 gcc 和 g++ 文件(给它们改个名字)
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
mv /usr/bin/g++ /usr/bin/g++-4.8.5
6.使用新的 gcc 和 g++ 文件(创建软连接)
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
7.下载 make
cd /usr/local
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz
7.解压并进入
tar -xzvf make-4.3.tar.gz && cd make-4.3/
8.配置一下

运行该目录下的 configure 配置文件,来配置 make 的编译和安装参数
指定安装目录为 /usr/local/make

./configure  --prefix=/usr/local/make
9.配置安装make
make && make install
10.备份make
cd /usr/bin/ && mv make make.bak
11.安装 bison 依赖
yum install -y bison
12.进入 glibc 创建 build 目录,并开始编译和安装
cd /usr/local/glibc-2.28/build

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

执行成功的 output 末尾是这样的,大家自己检查:

在这里插入图片描述

13.安装
make && make install
14.查看 动态链接库

输出如下就是没问题

strings /usr/lib64/libstdc++.so.6 | grep CXXABI

在这里插入图片描述

15.下载更新文件

更新libstdc++.so.6.0.26

cd usr/local/
wget https://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0.26
16.copy一份到 /usr/lib64/,并创建软连接
cp libstdc++.so.6.0.26 /usr/lib64/
cd /usr/lib64/
ln -snf ./libstdc++.so.6.0.26 libstdc++.so.6

三、解决

1.运行一下试试
npm -v
node -v
2.解决了

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MicroLindb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值