CentOS 6.3升级GLIBC_2.14和2.17

392 阅读1分钟

背景

测试环境有一台CentOS 6系统,需要搭建安卓编译环境,但是发现安卓SDK要求glibc最低版本为2.14,CentOS 6默认是2.12的版本,记录下glibc升级过程。升级前请将服务器备份,生产环境不建议操作。

编译glibc 2.14

查看glibc系统版本库,可以使用命令:

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

接下来下载glibc 2.14并升级:

#下载源码包

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

#解压

tar -xvf glibc-2.14.tar.gz

#进入源码目录cd glibc-2.14

#创建编译目录并进入

mkdir build && cd build 

#编译glibc

../configure --prefix=/usr/local/glibc-2.14

make && make install

修改软连接

#先删除原来的软连接

rm -rf /lib64/libc.so.6

#建立新的软连接

ln -s /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

#如果系统命令不可用,执行:

LD_PRELOAD=/usr/local/glibc-2.14/lib/libc-2.14.so  ln -s /usr/local/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

#解决升级后中文显示乱码的问题

cp /usr/lib/locale/locale-archive /usr/local/glibc-2.14/lib/locale/locale-archive

#解决时区不正确的问题

ln -sf /etc/localtime /usr/local/glibc-2.14/etc/localtime

拓展:升级GLIBC_2.17

# 下载glibc-2.17
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm

# 安装
rpm -Uvh glibc-2.17-55.el6.x86_64.rpm glibc-common-2.17-55.el6.x86_64.rpm glibc-devel-2.17-55.el6.x86_64.rpm glibc-headers-2.17-55.el6.x86_64.rpm --force --nodeps