事情经过:yum安装polkit-0.112-26.el7_9.1.x86_64工具,yum源用的和本地服务器不是一个版本yum安装完,会导致系统内核改变:
/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libstdc++.so.6)
正文:
系统centos6
用户root
(如果有按照百度教程升级GLIBC_2.14 or GLIBC_2.XX)的同学请先走第一步、第二步,没有安装高版本的GLIBC的同学直接进行第三部;
我们的目的是修改回原始的动态库;
第一步:确认动态库是否被修改
[root@tj-gongsi-quku lib64]# ll |grep libc.so.6
 lrwxrwxrwx  1 root root      13 Sep 29 11:38 libc.so.6 -> libc.so.6_bak
 lrwxrwxrwx  1 root root      12 Jun 21 09:09 libc.so.6_bak -> libc-2.17.so
 [root@tj-gongsi-quku lib64]# ll |grep libc-
 -rwxr-xr-x  1 root root 1926800 Jun 21 11:56 libc-2.12.so
 -rwxr-xr-x  1 root root 1926800 Jun 21 11:57 libc-2.18.so
 lrwxrwxrwx  1 root root      12 Jun 21 09:09 libc.so.6_bak -> libc-2.18.so
 此时的libc.so.6链接到了libc-2.18.so
正常情况下:
[root@tj-vm119-qa-webapp lib64]# ll |grep libc
 -rwxr-xr-x. 1 root root 1924768 Jun 20 11:37 libc-2.12.so
 lrwxrwxrwx. 1 root root      18 Jul  3 17:46 libcap-ng.so.0 -> libcap-ng.so.0.0.0
 -rwxr-xr-x. 1 root root   18672 Jun 25  2011 libcap-ng.so.0.0.0
 lrwxrwxrwx. 1 root root      14 Jul  3 17:45 libcap.so.2 -> libcap.so.2.16
 -rwxr-xr-x. 1 root root   16600 Dec  8  2011 libcap.so.2.16
 -rwxr-xr-x. 1 root root  201632 Jun 20 11:37 libcidn-2.12.so
 lrwxrwxrwx. 1 root root      15 Jul  6 19:41 libcidn.so.1 -> libcidn-2.12.so
 lrwxrwxrwx. 1 root root      17 Jul  6 19:42 libcom_err.so.2 -> libcom_err.so.2.1
 -rwxr-xr-x. 1 root root   14664 Mar 23  2017 libcom_err.so.2.1
 -rwxr-xr-x. 1 root root   40872 Jun 20 11:37 libcrypt-2.12.so
 lrwxrwxrwx. 1 root root      22 Jul  3 17:46 libcryptsetup.so.1 -> libcryptsetup.so.1.1.0
 -rwxr-xr-x. 1 root root   94312 Jun 22  2012 libcryptsetup.so.1.1.0
 lrwxrwxrwx. 1 root root      16 Jul  6 19:41 libcrypt.so.1 -> libcrypt-2.12.so
 lrwxrwxrwx. 1 root root      12 Jul  6 19:41 libc.so.6 -> libc-2.12.so
和默认版本不一样的
原因是因为之前安装教程修改了环境导致的,我现在把动态库软连接改回来;
第二步:还原libc.so.6
rm -rf libc.so.6 #删除软连接,这步执行完成后所有命令无法使用,不必惊慌这里删除的是软连接,原文件还在
可以执行sln /lib64/libc-2.12.so /lib64/libc.so.6
此时确认动态库,发现已经还原了
[root@tj-gongsi-quku lib64]# ll |grep libc-
 -rwxr-xr-x  1 root root 1926800 Jun 21 11:56 libc-2.12.so
 -rwxr-xr-x  1 root root 1926800 Jun 21 11:57 libc-2.18.so
 lrwxrwxrwx  1 root root      19 Sep 29 16:46 libc.so.6 -> /lib64/libc-2.12.so
但是此时问题依然存在
 /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libstdc++.so.6)
  
第三步:cd /usr/lib64下
ll ibstdc++.so.6
 确认libstdc++.so.6链接的目标文件
[work@tj-gongsi-quku lib64]$ ll |grep libstdc++.so.6
 lrwxrwxrwx   1 root         root       30 Sep 29 16:53 libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.bak
lrwxrwxrwx 1 root root 19 Jun 21 09:09 libstdc++.so.6.bak -> libstdc++.so.6.0.19
正常情况下
[work@tj-gongsi-quku lib64]$ ll |grep libstdc++.so.6
 lrwxrwxrwx   1 root         root       30 Sep 29 16:53 libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.13
也就是说默认的c++动态库被改了,那么改回来
这里直接删除不用担心命令用了,因为linux是c写的~
rm -rf libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.13 libstdc++.so.6
再查看一下
[work@tj-gongsi-quku lib64]$ ll |grep libstdc++.so.6
 lrwxrwxrwx   1 root         root       30 Sep 29 16:53 libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.13
 -rwxr-xr-x   1 root         root   987096 Mar 22  2017 libstdc++.so.6.0.13
 -rwxr-xr-x   1 root         root  6431548 Dec 16  2016 libstdc++.so.6.0.19
 lrwxrwxrwx   1 root         root       19 Jun 21 09:09 libstdc++.so.6.bak -> libstdc++.so.6.0.19
这样就完成了










