文章目录

特别说明,升级glibc属于系统核心操作,极易造成系统崩溃,一旦崩溃,重启都无效。

如果没有十足把握,建议参考 CentOS7下升级GLIBC2.31 这篇文章进行操作。完全保姆级的,全避坑。


以下是我自己的操作,过程中出现了报错,出现了重启无法进入系统。进行了一系列修复,才成功升级。


NodeJs测试服务端总是重启,日志又没有任何异常,就很绝望。在不断细化日志也没有找到问题以后,只能怀疑内存和堆栈了。于是查了一圈,发现heapdump似乎还不错,准备使用。

反正不顺利是常态,在本地测试ok后,就部署到测试服准备等结果。结果是直接报错了。

1
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found

网上还是很容易查到相关信息,但实际上解决起来并不简单,问题都是一环扣一环的。

首先发现需要更新glibc,那么就在官网地址:http://ftp.gnu.org/gnu/glibc/ 下载了一个版本。然后尝试编译安装。

1
2
3
4
5
6
7
8
9
tar -xf glibc-2.32.tar.gz
cd glibc-2.32
mkdir build
cd build

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

make
make install

然而make是过不了的,提示说:

1
2
*** These critical programs are missing or too old: make compiler
*** Check the INSTALL file for required versions.

又继续上网查资料,说make和gcc版本又太低。这……

好吧,那么又开始更新make和gcc,可以参考这两个链接来处理:

更新make

更新gcc

上面gcc编译非常耗费时间,能不等就不要等,差一点的服务器直接是按小时计算的。

更新结束以后,回来继续编译glibc。

1
make & make install

最后检测一下

1
2
ls -l /lib64/libc.so.6
strings /lib64/libc.so.6 | grep GLIBC

如果找不到,或者发现链接有问题,就手动链接一下

1
2
3
4
5
cd /usr/local/lib64
cp libstdc++.so.6.0.22 /usr/lib64/
cd /usr/lib64/
mv libstdc++.so.6 libstdc++.so.6.OLD
ln -sf libstdc++.so.6.0.22 libstdc++.so.6

♦ 本文固定连接:https://www.gsgundam.com/archive/2022-06-03-cxxabi-1.3.9-not-fount-libstdc-so-6-centos/

♦ 转载请注明:GSGundam 2022年06月03日发布于 GSGUNDAM砍柴工

♦ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

♦ 原创不易,如果页面上有适合你的广告,不妨点击一下看看,支持作者。(广告来源:Google Adsense)

♦ 本文总阅读量