glibc手动升级高版本导致系统(RedHat/Centos)异常(无法开机等)的解决方法(回退低版本glibc)

我的系统是Redhat7.6, 理论上Redhat7/Centos7都可以使用该方法解决问题。

首先慎重提醒各位:glibc升级会产生无法预料的后果!由于Android NDK需要高版本的glibc才可以使用,所以作死手动去更新了glibc2.18,使得重启系统后图形界面消失。(Redhat/Centos升级此类安装包最好用yum升级,因为系统内的程序对他们的依赖很大,升级会导致大部分程序无法使用。)

解决思路:

  1. 用系统自带的rpm包去覆盖已经安装的程序。
  2. 由于此时可能连系统都进不了了,所以需要光盘进入到rescue模式去挂载系统盘修改安装rpm包

步骤

  1. 下载好该系统版本安装光盘的iso,比如我的系统是RedHat7.6,则我在官网下载iso:rhel-server-7.6-x86_64-dvd.iso
  2. 从光盘启动进入rescue模式,需要在bios中设置光盘优先启动,根据提示进入到rescue模式。
    glibc手动升级高版本导致系统(RedHat/Centos)异常(无法开机等)的解决方法(回退低版本glibc)_第1张图片
    进入到rescue模式之后
    glibc手动升级高版本导致系统(RedHat/Centos)异常(无法开机等)的解决方法(回退低版本glibc)_第2张图片
  3. 进入到系统所在目录将之前升级之后的glibc删除干净,此操作先备份好系统
# cd /mnt/sysimage/lib64    //进入到要修复系统的lib64目录
# rm -rf *2.18*             //此操作会删除所有与2.18版本glibc的文件
# cd /                      //回到rescue自带系统的目录
  1. 挂载iso镜像以便使用rpm包
# mkdir media                               //创建目录
# mount /dev/cdrom /media                   //挂载光盘
  1. 安装rpm包
# cd /media/Packages               //进入到rpm包的目录
# rpm -ivh --force --root=/mnt/sysimage glibc-*     //安装与glibc有关的rpm包
  1. 重启电脑进入系统后,系统会自动修复好并自动重启,此时应该可以恢复正常。

注意:此方法仅针对Redhat7/Centos7以上。

你可能感兴趣的:(Linux日常)