CentOS 6.X使用RPM包升级GLIBC的例子

之前一段时间经常被 “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 就不能进行升级了,其各种漏洞也不会得到修补。

时间: 2024-07-31 05:58:05

CentOS 6.X使用RPM包升级GLIBC的例子的相关文章

教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性

教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性 我们都知道,在基于红帽的Linux系统中,一个RPM包,需要把先将它依赖的其他包安装好才能正常的工作.对于终端用户,RPM的安装.更新.删除中存在的依赖关系已经被工具透明化了(如 yum或 DNF等).但如果你是系统管理员或者RPM包的管理员,你需要谙熟RPM包的依赖关系,以便及时更新.删除适当的包来保证系统的正常运行. 在本教程中,我将教大家如何检查RPM包的依赖关系.无论这个包是否已经安装进操作系统中,我们都有一些办法来检

CentOS 6.6 x86_64 RPM包制作教程

一.RPM包介绍 对RPM包有五种基本的操作功能:安装.卸载.升级.查询和验证.linux软件包分为两大类:    1. 二进制类包:包括rpm安装包(一般分为i386和x86_64这几种)     2. 源码类包:源码包和开发包(.src.rpm)都是属于此类 有时候为了方便源码包的安装,和我们自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,当有源码包就可以直接编译得到二进制安装和其他任意包,另外,我们也可以使用rpm包来打包一些文件或者自己开发的一套软件,使用rpm有数

Centos使用checkinstall制作RPM包的方法

一.checkinstall的安装 目前最新版本是1.6.2,可以按下面的方式下载安装.  代码如下 复制代码 wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz tar  zxvf checkinstall-1.6.2.tar.gz cd checkinstall-1.6.2 make  && make install 不过我在centos6.5 X64上安装时,并

CentOS下安装官方RPM包的MySQL后找不到my.cnf解决办法

解决方法很简单, 只需复制  代码如下 复制代码 /usr/share/mysql/my-medium.cnf 文件到/etc目录, 并改名为my.cnf即可:  代码如下 复制代码 cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

Centos 中如何快速定制二进制的内核 RPM 包

随着Linux服务器越来越多了,底层系统内核想要保持版本统一就需要定制专门的二进制安装包来便捷的升级和管理. RedHat系那当然就是使用rpmbuild来做定制化管理了. 今天我们分俩个部分(root和普通用户)来讲解如何制作内核的二进制rpm包. Building主机系统环境约定: OS : CentOS release 6.6 Arch : i686 一,rpm包简单定制 注意: 这里我们首先要预留至少20GB的临时文件空间. 1.rpm 制作前的环境准备: yum -y groupins

Centos下rpm包如何制作?

  Centos下rpm包如何制作?          谈论RPM对好多编译安装的朋友来多,RPM安装是傻瓜安装. 呵呵,其实RPM是一种非常有效果的集中部署的解决方案. yum+RPM是非常快速便捷的大规模部署方案. 下面简单介绍下rpm的制作: 以cronolog为例: 首先下载cronolog的源码包. 解开源码包,tar xzvf cronolog-1.6.2.tar.gz 找到 cronolog.spec 该文件是定制如何生成RPM包的配置文件 ? 1 2 3 4 5 6 7 8 9

在CentOS中用yum命令下载RPM包但不进行安装的方法

  yum是基于Red Hat的系统(如CentOS.Fedora.RHEl)上的默认包管理器.使用yum,你可以安装或者更新一个RPM包,并且他会自动解决包依赖关系.但是如果你只想将一个RPM包下载到你的系统上该怎么办呢? 例如,你可能想要获取一些RPM包在以后使用,或者将他们安装在另外的机器上. 这里说明了如何从yum仓库上下载一个RPM包. 方法一:yum yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了--downloadonly(只下载)的选项来达到这个目的. 代码如下

CentOS中使用RPM包离线安装MySQL数据库

之前一直是使用Ubuntu,习惯了在线安装的方式,此次在centos中使用rmp包进行李先安装,记录下步骤: 1.检测本机安装的MySQL并卸载 rpm -qa|grep -i mysql 检查结果: mysql-5.1.66-2.el6_3.x86_64 mysql-libs-5.1.66-2.el6_3.x86_64 mysql-devel-5.1.66-2.el6_3.x86_64 说明系统中已经带有MySQL,将其卸载: rpm -e --nodeps mysql-devel-5.1.6

Fedora上制作CentOS 6 7带aufs的内核rpm包

这个是我在github上无意发现的,开始我在CentOS 6.8上制作但是一直失败,之后无奈换了fedora 24制作就好了,下面说说过程, [root@localhost ~]# dnf update -y [root@localhost ~]# dnf install fedora-packager -y [root@localhost ~]# useradd lookback [root@localhost ~]# passwd lookback [root@localhost ~]# u