错误总结:linux源码编译安装glic2.18的坑“/lib64/libc.so.6: version `GLIBC_2.18’ not found (required by /lib64/libs

错误总结:linux源码编译安装glic2.18的坑“/lib64/libc.so.6: version `GLIBC_2.18’ not found (required by /lib64/libstdc++.so.6)”

前段时间在阿里云服务器上遇到了linux系统的错误:

在使用systemctl start 命令启动服务时,报错误:“/lib64/libc.so.6: version `GLIBC_2.18’ not found (required by /lib64/libstdc++.so.6)” glibc_2.18包没找到,在启动其他服务(docker、mysql)都报这个错误。

这个时候大多数人的思路是把linux系统自带的glibc包进行升级,当我下载了更高版本的glibc,准备编译的时候出现了新的错误:These critical program are missing or too old: make ,我查看了当前机器上的make版本,确认是最新版4.8版本的make,这个时候第一次陷入死胡同,没想到解决方案。

我尝试重新安装make,发现还是不行。

找到一篇

[http://t.csdn.cn/CKtvC文章]:

,按照这个方法检查 ./configure ,在4775行看到img

添加了一个4.[0-9]。

使configure检查的时候,让Make version >= 4.0 的也能通过。

最后成功编译

img

然后我接着执行 make install,然后就出现了神奇的一幕:“/lib64/libc.so.6: version `GLIBC_2.18’ not found (required by /lib64/libstdc++.so.6)” GLIBC_2.18包没找到。

这个时候我就彻底陷入死循环了,因为2.18版本的包没找到,所以我去安装更高版本的glibc,但是在安装过程中又因为glibc版本过低无法安装。

期间我查阅了大量的CSDN文章,尝试把make、gcc等都升级到最新版本,都卡在./configure或make && make install环节,都是陷入死循环中。

最后发现是linux系统底层的polkit服务没跑起来,导致其他所有的服务都无法启动,手动去启动polkit也是报glibc2.18版本没找到。至此,到达我现阶段的技术天花板(谁知道实习四个月就会碰到这种错误),第二天求救公司的技术大佬,以下是大佬执行过的操作:

1、polkit服务没启动,上去先复现你说的问题,手动拉polkit服务不成功,查看系统报错日志。
2、出现了所说的‘没找到GLIBC_2.18’信息,这个一般是由于gcc版本过低导致,看了一下系统内gcc版本是4.X的,升级为9.X。后面我又升级编译了11.X版本的GCC。make install安装好GCC后,重启系统。
3、删除旧版本,配置全局可用。再次手动拉起polkit服务。

当时大佬是先升级到9.X版本,发现还是有报错,后面直接重新下载安装包升级到11.X版本并安装重启系统后,直接执行systemctl start polkit.service就拉起了


版权声明:本文为weixin_40805090原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。