记录一次升级glibc遇到的坑

系统环境:centos 6.5

升级原因:

服务器上面打包按照apk包使用到aapt命令,报错“libc.so.6: version GLIBC_2.14 not found”。

因为glibc底层库的版本太低了。

解决方法:升级glibc。

使用string命令可以查看到,我们最大的CLIBC只能到2.12,没有2.14。使用rpm -qa|grep glibc 可以看到glibc的版本是2.12的,需要升级到14或者以上。


# cat /etc/redhat-release 
CentOS release 6.5 (Final)
 
# strings /lib64/libc.so.6 |grep GLIBC_ 
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12

踩过的坑:使用网上编译的方式来升级很多坑。

比如报错:下面这些报错我就不多说了,网上解决方法一大把。前面三个还可以解决,第4个怎么也解决不了。可能要重装应用。比如执行mysql命令,或者执行Java命令等都会报第4个的错。可能那些应用是在2.12版本上安装的,升级之后底层库文件版本不一致导致的。我没有尝试去重装。
1、执行locale报错:Cannot set LC_CTYPE to default locale: No such file or directory 
2、date查看系统时间报错:(Local time zone must be set--see zic manual page 2019 )
3、所有命令都用不了。
解决方法:export LD_LIBRARY_PATH=/usr/local/glibc-2.14/lib:$LD_LIBRARY_PATH
4、Segmentation fault (core dumped)

解决上面的方法:

使用yum安装升级glibc。我升级到2.15。反正我成功了,你们升级的时候最好先尝试编译安装的方式。

glibc安装包下载:

链接:https://pan.baidu.com/s/1_m2JVMYCJHit3OsDK8VUcw 
提取码:343i

下载完之后直接yum安装四个包就行了。然后再使用这个命令去看:

strings /lib64/libc.so.6 |grep GLIBC_

可以看到有14和15的glibc的库了。

Guess you like

Origin blog.csdn.net/MYF12/article/details/120226519