之前一段时间经常被 “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 的 glibcglibc-commonglibc-develglibc-headers,并且版本是 2.12-1.192.el6,所以升级时我们要下载新版本的以上 4 种 RPM 包。

Note:与 glibc 相关的包有 x86_64i686glibcglibc-commonglibc-develglibc-headersglibc-staticglibc-utils,请根据实际情况自行选择。

 

接下来,可以在 ftp.redsleeve.orgrpmfind.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 就不能进行升级了,其各种漏洞也不会得到修补。


原创文章,转载请以链接形式注明出处:https://blog.ttionya.com/article-1559.html