您的位置:首页 > 运维架构 > Linux

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

2017-12-29 21:48 302 查看

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

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

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

背景

报错现象

解决思路

步骤

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 <monsterhu>       | 2017-12-28 14:22 | Install        |    1
3 | master <monsterhu>       | 2017-09-14 02:50 | I, U           |  282 EE
2 | master <monsterhu>       | 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 服务器