今天在处理一台服务器环境时,遇到了如下问题

yum install glib2报错如下

image.png

在百度上查阅了许多资料,均说在执行命令后面加上:--setopt=protected_multilib=false 进行处理

但是我按照该操作进行了操作之后均会报错

于是参考了外网资料https://cloudpack.media/3439

使用yum check >./yum.log的方式进行check

出现新的报错如下

image.png

根据新的报错资料,定位报错问题

查看外网资料,有可能是rpm数据库损坏,于是参考https://cloudlinux.zendesk.com/hc/en-us/articles/115004075294-Fix-rpmdb-Thread-died-in-Berkeley-DB-library

进行了修复

mkdir /var/lib/rpm/backup
cp -a /var/lib/rpm/__db* /var/lib/rpm/backup/
rm -f /var/lib/rpm/__db.[0-9][0-9]*
rpm --quiet -qa
rpm --rebuilddb
yum clean all

重新yum install glib2依旧是一样的报错

image.png

重新运行yum check > ./yum.log

image.png

可以看到check是没有报错的

所以排除了这个可能

重新查找到外网资料https://serverfault.com/questions/597168/solving-multilib-version-problems

给出的同时yum install glib2.x86_64  glib2.i686的方法

成功解决了问题 

根据解决问题中途遇到的问题总结

  1. 该问题是由于在系统中同时存在glib2.x86_64  glib2.i686的导致

  2. 如果无脑直接--setopt=protected_multilib=false有概率造成系统的rpm数据库损坏。

  3. 如果无法卸载多余版本,需同时升级多版本库的文件,避免造成文件损坏及系统损坏


参考资料:

    https://cloudpack.media/3439

    https://cloudlinux.zendesk.com/hc/en-us/articles/115004075294-Fix-rpmdb-Thread-died-in-Berkeley-DB-library

    https://serverfault.com/questions/597168/solving-multilib-version-problems