记录一次升级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的库了。
还没有评论,来说两句吧...