Linux 7u2 64bit,Centos7 64位 — glibc-2.29 编译升级方法(已成功)

某软件出现漏洞,需要升级解决(忘了哪个)结果提示glibc版本过低、

懵懂无知的我以为glibc想其他软件一样编译升级一下就好。。

结果装系统!

说真的,如非必要(或学习),请勿升级 glibc!

一、心理准备

咱们先来说一下,glibc 出错你会出现什么问题:

1.影响最小的情况下,无法解析名称空间(不过你可以通过ip连接 络)

2. 无法使用rpm yum(对文件非常熟悉的话解包复制还是可以的)

3. 无法使用 su 登陆,无法切换用户(单是这样的话单用户模式还是可以使用的)

4. bash 使用不了,这种情况下整个系统你只能使用 cd 或者 export 等屈指可数的指令(只有救援模式可救)

二、物理准备

2. 下载 glibc、make 的 feroda29系统 rpm包 (选用feroda的包是最接近目标的,目前本人的系统为 centos7.6, 但glibc升级需求的工具仍达不到版本需求):

安装地址:全部百度都有,有空的话我再发出来

以下5个装了之后你的系统就能正常用了(缺一不可)

glibc-2.28-26.fc29.x86_64.rpm//基础包,没个bash用不了

glibc-common-2.28-26.fc29.x86_64.rpm//基础包的依赖包

glibc-all-langpacks-2.28-26.fc29.x86_64.rpm  //语言包,缺的话你的字符终端会看到非常多星星

libnsl-2.28-26.fc29.x86_64.rpm//名称空间的库,没有的话su登录不了,dns也无法域名解析

libxcrypt-4.4.4-2.fc29.x86_64.rpm   //加密用的库,远程传输都需要用到

想继续玩编译的话还需要以下几个包:

gcc-8.3.1-2fc29.x86_64.rpm

glibc-devel-2.28-26.fc29.x86_64.rpm

glibc-headers-2.28-26.fc29.x86_64.rpm

libxcrypt-devel-4.4.4-2.fc29.x86_64.rpm

make-4.2.1-10.fc29.x86_64.rpm

三、安装必要rpm包(升级到glibc-2.28)

1. 按顺序安装rpm包:

# rpm -Uvh  glibc-2.28-26.fc29.x86_64.rpm –nodeps //与comm为互相依赖,必须要加 –nodeps

# rpm -Uvh glibc-common-2.28-26.fc29.x86_64.rpm

# rpm -Uvh glibc-all-langpacks-2.28-26.fc29.x86_64.rpm

# rpm -Uvh libnsl-2.28-26.fc29.x86_64.rpm

# rpm -Uvh libxcrypt-4.4.4-2.fc29.x86_64.rpm

2.重启检查系统是否正常运行

# shutdown -r now

期间会卡一段时间并重启,先不要管

待重启成功后检查系统功能是否正常, 如不正常请参照:

删除新版gblic重装旧版glibc后再来一遍

3.安装剩下开发包

# rpm -Uvh gcc-8.3.1-2fc29.x86_64.rpm     //如果安装失败请通过编译方式,由于我之前已升级gcc,此步忽略了

# rpm -Uvh glibc-devel-2.28-26.fc29.x86_64.rpm –nodeps

# rpm -Uvh glibc-headers-2.28-26.fc29.x86_64.rpm

# rpm -Uvh libxcrypt-devel-4.4.4-2.fc29.x86_64.rpm

# rpm -Uvh make-4.2.1-10.fc29.x86_64.rpm

四、编译升级 glibc-2.29

其实上一步完成后你的glibc已经是次新版了,如果不想浪费时间可以就此停止

1.下载 glibc-2.29 源码

官 :http://www.gnu.org/software/libc/sources.html

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

# tar zxf glibc-2.29.tar.gz

# cd glibc-2.29

2.查看文档

# cat INSTALL     //先看看文档吧

需求工具版本:

*GNU  ‘make’  4.0 or newer

*GCC 5 or newer

*GNU  ‘binutils’ 2.25 or later

*GNU  ‘textinfo’’ 4.7 or later

*GNU  ‘awk’ 3.1.2 or later

*GNU  ‘bison’ 2.7 or later

*Perl 5

*GNU  ‘sed’ 3.02 or later

*Python 3.4 or later

*PExpect 4.0

*GDB 7.8 or later with support for Python 2.7/3.4 or later

3.编译安装

# mkdir tmpdir  //glibc只能在其他目录进行编译,gcc也是

# cd tmpdir

# ../configure –prefix=/        // 期间如果 错相应工具版本过老,请升级相应的包,如果提示是compiler 那你要升级gcc

# make && make install

# init 6      // 期间会卡一段时间并重启,耐心等候

总结:

glibc是linux非常底层的工具库(内核之上,一切工具之下),一旦出错很可能整个系统无法使用

因此如非特殊情况,尽量不要升级glibc,即使升级也要做好万全的准备!

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux25126 人正在系统学习中 相关资源:GHOST系统只剩C盘数据恢复软件_ghost分区丢失只剩c盘数据恢复…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月9日
下一篇 2021年4月9日

相关推荐