CentOS 6升级glibc

环境

  • CentOS 6.3
  • glibc 2.12

背景

新安装的软件依赖glic 2.17,而机器上的glibc的最高版本只有2.12.
执行以下命令可以查询glibc的所有版本

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

在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

方法:基于rpm

网上的教程多基于源码编译安装glibc,我也尝试了这种方法,但是在编译过程中./configure命令就失败了,原因是我的make版本过低,因此我放弃了源码编译,转而使用rpm安装。
下载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同时安装以上4个包,并用--force参数强制覆盖老版本

rpm -ivh --force 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

注意,如果不在一个rpm命令中同时安装以上4个包而是一个一个单独安装,会出现相互依赖的报错死循环

安装完成,再次执行

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

此时可以看到已经有了GLIBC_2.17

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_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE

你可能感兴趣的:(Linux,centos,glibc,rpm)