1、查看系统版本, 升级系统基本lib库
[root@test ~]# cat /etc/redhat-release CentOS release 6.5 (Final)
2、查看系统glibc支持的版本
[root@test src]# 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 GLIBC_PRIVATE ##可以看到最高的版本是GLIBC_2.12,没有GLIBC_2.14。我们在此解决一下
3、下载glibc
[root@test src]# cd /usr/local/lib [root@test lib]# wget -c http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz [root@test lib]# tar -zxf glibc-2.14.tar.gz [root@test lib]# cd glibc-2.14
4、 在glibc源码目录建立构建目录,并make 安装
[root@test glibc-2.14]#mkdir build && cd build [root@test build]# ../configure --prefix=/opt/glibc-2.14 [root@test build]#make j4
[root@test build]#make j4 localedata/install-locales //如果不执行这一步,直接就导致了后面locale的设置问题
[root@test build]#make j4 install
5、配置
在替换配置前,查看一下现在libc.so.6文件链接情况
[root@test glibc-2.14]ls -l /lib64/libc.so.6
lrwxrwxrwx. 1 root root 12 Jul 6 2016 /lib64/libc.so.6 -> libc-2.12.so
[root@test glibc-2.14]cp /etc/ld.so.c* /opt/glibc-2.14/etc/ [root@test glibc-2.14]ln -sf /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
注意
千万不要直接删除libc.so.6,删除
之后可能导致系统命令不可用的情况, 可使用如下方法解决:
#LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
如果上述更新失败可使用如下命令还原:
#LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 此项是系统升级前的版本
6、查看版本库支持
[root@test build]# 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 GLIBC_2.13 GLIBC_2.14 GLIBC_PRIVATE ##已经支持 GLIBC_2.14
完成!!!