之前一段时间经常被 “ libc.so.6: version `GLIBC_2.14′ not found ” 这个报错信息折腾,出现这个报错的原因就是当前系统安装的 GLIBC 版本低于软件编译时使用的 GLIBC 版本。
这也是 CentOS 非常不适合折腾的原因之一,一些软件经常用到的底层 API 或编译器版本都非常低。
CentOS 7.X 倒还好,GLIBC Version 2.17,GCC Version 4.8.5,基本满足需要,但是 CentOS 6.X 的 GLIBC Version 2.12,GCC Version 4.4.7,基本不满足需求…
看看别人家的坂本,比你不知道要高到哪里去了
由于一直使用 CentOS 6.X 系统,以前一出问题就直接编译源码,想想其实挺麻烦的。现在就打算直接使用 RPM 包升级,方便快捷,只是比源码编译自由度低些,这里把具体方法及链接记下来,以作备忘。
先对比下源码编译、RPM 包和 YUM 三种安装方法的优劣:
源码编译:可以自行指定编译参数,自由度高,略显麻烦。但是如果不安装最新版本,BUGs 和 CVEs 是不会被修复的,和咸鱼没什么差别;
RPM 包安装:官方没有高版本的 RPM 包,只好使用可信第三方制作的,有时制作时间是几年前,和不使用最新版本的源码编译差不多,不会去打补丁;
YUM 安装:虽然 YUM 源中的版本都很低,而且万年不动,但是时常更新,一般会打补丁(patch),安全性较高,奈何版本太低。
升级 GLIBC
首先确定当前系统装了 GLIBC 的哪些包,以及最高支持版本。
[root@localhost src]# rpm -qa | grep glibc
glibc-2.12-1.192.el6.x86_64
glibc-devel-2.12-1.192.el6.x86_64
glibc-headers-2.12-1.192.el6.x86_64
glibc-common-2.12-1.192.el6.x86_64
[root@localhost 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
得知系统中安装了 x86_64
的 glibc
、 glibc-common
、 glibc-devel
、 glibc-headers
,并且版本是 2.12-1.192.el6
,所以升级时我们要下载新版本的以上 4 种 RPM 包。
Note:与 glibc 相关的包有 x86_64
和 i686
的 glibc
、 glibc-common
、 glibc-devel
、 glibc-headers
、 glibc-static
、 glibc-utils
,请根据实际情况自行选择。
接下来,可以在 ftp.redsleeve.org 、 rpmfind.net(x86_64) 或 百毒云 下载相应版本的 RPM 包,注意只能用在 el6 发行版
中。
OK,下完了文件,假设我们把需要升级的 RPM 包放在了 /usr/src
目录下。
cd /usr/src
# 这里我们只需要安装4个RPM包,根据实际情况安装
rpm -Uvh glibc-2.15-60.el6.x86_64.rpm \
glibc-common-2.15-60.el6.x86_64.rpm \
glibc-devel-2.15-60.el6.x86_64.rpm \
glibc-headers-2.15-60.el6.x86_64.rpm
虽然安装过程中貌似会有个小报错,但是 maybe 无关紧要?
安装完成后,再次查看安装情况
[root@localhost src]# rpm -qa | grep glibc
glibc-2.15-60.el6.x86_64
glibc-devel-2.15-60.el6.x86_64
glibc-headers-2.15-60.el6.x86_64
glibc-common-2.15-60.el6.x86_64
[root@localhost 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_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_PRIVATE
好了,现在就不会再出现版本不够的报错了,当然这只是 2.15 版。
注意,安装后用 YUM 就不能进行升级了,其各种漏洞也不会得到修补。
原文:http://www.tuicool.com/articles/zqmAryn