zoukankan      html  css  js  c++  java
  • Centos7 64位 -- glibc-2.29 编译升级方法(已成功)

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

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

      结果? 重装系统!

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

    一、心理准备

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

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

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

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

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

    二、物理准备

    1. 准备一个U盘启动盘 ,用于拯救系统,具体见我的另外一篇随笔:Centos7 -- glibc 升级失败、意外删除、故意删除后的处理方法

    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

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

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

      Centos7 -- glibc 升级失败、意外删除、故意删除后的处理方法 

      删除新版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,即使升级也要做好万全的准备!

  • 相关阅读:
    iOS学习笔记:iOS核心动画中的常用类型
    SqlServer中获取数据库中每个表的行数
    python--setUp()和tearDown()应用
    python--获取文件路径
    测试用例设计方法基础理论知识
    软件测试的基础理论
    Linux理论基础知识
    APP测试理论知识点
    Python30个基础题(三)
    Python30个基础题(二)
  • 原文地址:https://www.cnblogs.com/caya-yuan/p/10561439.html
Copyright © 2011-2022 走看看