Ubuntu 18.04 出现GLIBC_2.28 not found的解决方法(亲测有效)
Yimning 2024-06-23 10:37:01 阅读 62
关于/lib/x86_64-linux-gnu/libc.so.6: version
GLIBC_2.28’ not found`出现报错,建议不要使用源码包去编译并升级。在下文有分享一个使用官方的Debian软件包去升级使用的方法。仅供参考!
环境
# uname -aLinux Ubuntu 5.4.0-144-generic #161~18.04.1-Ubuntu SMP Fri Feb 10 15:55:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
分析原因
glibc是linux底层的API库。通常情况下,有些环境需要glibc更高的版本才支持,比如GLIBC_2.28
。
另外对它操作升级,可能有导致系统崩溃的风险。
经验与教训
使用GLIBC_xxx
的源码包编译升级的惨案:
提醒:在其他博客教程上,有些网友(我也不另外,后面可拯救回来)就按照教程并使用GLIBC_xxx
的源码包并去升级,结果往往是系统崩溃而告终。
glibc库对linux系统非常重要,轻易不要更换。如果需要更换,需提前备份好原本的相关库以防万一。
若在使用源码包去升级之后出现segmentation fault
,命令无法使用的情况。
解决方法:
若安装失败,可能导致各指令出错,除了cd、pwd基本都不可使用,这时候千万不要关闭窗口(如果关闭将导致将无法打开,只能重装系统),比如安装libc-2.28.so出错了,需拯救系统。可尝试输入其中一条
export LD_PRELOAD=/lib64/librt-2.XX.soexport LD_PRELOAD=/lib64/libm-2.XX.soexport LD_PRELOAD=/lib64/libpthread-2.XX.soexport LD_PRELOAD=/lib64/libc-2.XX.soexport LD_PRELOAD=/lib/x86_64-linux-gnu/libc-2.XX.so
(XX指原本的版本,看文件夹有哪个就试一下),然后ls这些指令就可以用了,再使用ln -s把以前的库链接回来。
cd /lib/x86_64-linux-gnull # 文件详细信息ln -sf libc-2.27.so libc.so.6 # libc-2.27.so是原有版本rm libc-2.28.so #删除
软件包升级GLIBC_2.28
1
查看服务器当前版本,命令如下:
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
返回的结果如下:
GLIBC_2.2.5GLIBC_2.2.6GLIBC_2.3GLIBC_2.3.2GLIBC_2.3.3GLIBC_2.3.4GLIBC_2.4GLIBC_2.5GLIBC_2.6GLIBC_2.7GLIBC_2.8GLIBC_2.9GLIBC_2.10GLIBC_2.11GLIBC_2.12GLIBC_2.13GLIBC_2.14GLIBC_2.15GLIBC_2.16GLIBC_2.17GLIBC_2.18GLIBC_2.22GLIBC_2.23GLIBC_2.24GLIBC_2.25GLIBC_2.26GLIBC_2.27GLIBC_PRIVATE
说明服务器当前是没有GLIBC_2.28
2
使用软件包升级方式
参考debian网址并搜索想要的软件或者工具等,如libc6
,有结果如下:
具体就不介绍了,请浏览官网了解。
添加软件源,/etc/apt/sources.list
文件中像下面这样添加一行:
deb http://security.debian.org/debian-security buster/updates main
系统可用的软件包更新,刷新软件包的缓存
sudo apt update # 更新软件源
apt-get update
之后若出现下面提示:
由于没有公钥,无法验证下列签名: NO_PUBKEY 112695A0E562B32A NO_PUBKEY 54404762BBB6E853
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A 54404762BBB6E853
其中后面的112695A0E562B32A 54404762BBB6E853
就是上面提到的NO_PUBKEY 112695A0E562B32A NO_PUBKEY 54404762BBB6E853
中的公钥,替换成对应的即可。然后重新apt-get update
即可。
查看软件包可更新列表
sudo apt list --upgradable
如下图所示:
安装libc6
sudo apt install libc6-dev 或者 sudo apt install libc6
3
查看服务器当前版本:
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
返回的结果如下:
GLIBC_2.2.5GLIBC_2.2.6GLIBC_2.3GLIBC_2.3.2GLIBC_2.3.3GLIBC_2.3.4GLIBC_2.4GLIBC_2.5GLIBC_2.6GLIBC_2.7GLIBC_2.8GLIBC_2.9GLIBC_2.10GLIBC_2.11GLIBC_2.12GLIBC_2.13GLIBC_2.14GLIBC_2.15GLIBC_2.16GLIBC_2.17GLIBC_2.18GLIBC_2.22GLIBC_2.23GLIBC_2.24GLIBC_2.25GLIBC_2.26GLIBC_2.27GLIBC_2.28 # 多出该版本,说明安装成功,系统也能正常使用。GLIBC_PRIVATE
如下图所示:
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。