Linux服务器配置与管理系列---解决依赖关系破坏---yum回滚

软件包依赖关系破坏如何解决

  • 软件包依赖关系破坏解决方案

  • 软件包依赖关系破坏如何解决
      • 背景
      • 报错现象
      • 解决思路
      • 步骤
      • yum回滚方法的拓展


1.背景

    今天准备搭建一个DNS服务器,奈何在安装bind系列软件时候报错,提示软件包依赖关系破坏,不能安装。思考了一下,找到出错的原因:以前我用的是网易的CentOS源,用此源执行过一次yum upgrade命令,但是后来下载了一个系统镜像文件,搭建了一个本地yum源,更换成本地源后,这两个软件仓库有些不兼容,导致bind破坏了依赖关系而无法安装。


2.报错现象

[root@localhost ~]# yum -y install bind
... ...
Error: Package: glibc-2.12-1.192.el6.i686 (local)
           Requires: glibc-common = 2.12-1.192.el6
           Installed: glibc-common-2.12-1.209.el6.x86_64 (@163/6Server)
               glibc-common = 2.12-1.209.el6
           Available: glibc-common-2.12-1.192.el6.x86_64 (local)
               glibc-common = 2.12-1.192.el6
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
[root@localhost ~]# 

3.解决思路

    回滚到upgrade以前的环境即回到最初没有使用网易源的原始环境,然后就能解决依赖关系破坏的问题,接着就可使用本地仓库进行软件的安装了。


4.步骤

  • a.查看yum安装/升级历史,确定回滚点
    [root@localhost ~]# yum history
Loaded plugins: fastestmirror, product-id, refresh-packagekit, search-disabled-repos, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     4 | master        | 2017-12-28 14:22 | Install        |    1   
     3 | master        | 2017-09-14 02:50 | I, U           |  282 EE
     2 | master        | 2017-09-14 02:39 | Install        |    9  <
     1 | System <unset>           | 2017-09-13 15:21 | Install        |  961 > 
history list
[root@localhost ~]# 
# 从以上结果中可以看到:第3条记录通过网易的CentOS源进行了安装和升级,我们就回滚到这之前就好了
  • b.开始回滚
[root@localhost ~]# yum history rollback 2
... ...
 yum-utils                                         noarch               1.1.30-37.el6                                       local                      112 k

Transaction Summary
=============================================================================================================================================================
Remove        3 Package(s)
Downgrade   279 Package(s)

Total download size: 345 M
Is this ok [y/N]: y
  • c.回滚后就可愉快的安装上bind家族软件了
[root@localhost ~]# yum -y install bind
... ...
Installed:
  bind.x86_64 32:9.8.2-0.47.rc1.el6                                                                                                                          

Complete!
  • d.注意事项
        一定要找准出问题(依赖关系被破坏)的原因,以便确定回滚点id,千万不能错,不然回滚一点点不能解决问题,回滚多了就到最初版本,相当于刚刚装的新系统,那就麻烦了!

5.yum回滚方法的拓展

  • 安装了不想要的软件,想回到没安的状态
  • yum安装一个软件包是会连同依赖包一起安装,但是yum卸载时却只卸载这个文件包本身,此时使用回滚方法解决

你可能感兴趣的:(Linux)