1. 程式人生 > >Linux伺服器配置與管理系列---解決依賴關係破壞---yum回滾

Linux伺服器配置與管理系列---解決依賴關係破壞---yum回滾

軟體包依賴關係破壞如何解決

  • 軟體包依賴關係破壞解決方案

1.背景

    今天準備搭建一個DNS伺服器,奈何在安裝bind系列軟體時候報錯,提示軟體包依賴關係破壞,不能安裝。思考了一下,找到出錯的原因:以前我用的是網易的CentOS源,用此源執行過一次yum upgrade命令,但是後來下載了一個系統映象檔案,搭建了一個本地yum源,更換成本地源後,這兩個軟體倉庫有些不相容,導致bind破壞了依賴關係而無法安裝。

2.報錯現象

[[email protected] ~]# 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 [[email protected] ~]#

3.解決思路

    回滾到upgrade以前的環境即回到最初沒有使用網易源的原始環境,然後就能解決依賴關係破壞的問題,接著就可使用本地倉庫進行軟體的安裝了。

4.步驟

  • a.檢視yum安裝/升級歷史,確定回滾點
    [[email protected] ~]# 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 [[email protected] ~]# # 從以上結果中可以看到:第3條記錄通過網易的CentOS源進行了安裝和升級,我們就回滾到這之前就好了
  • b.開始回滾
[[email protected] ~]# 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家族軟體了
[[email protected] ~]# yum -y install bind
... ...
Installed:
  bind.x86_64 32:9.8.2-0.47.rc1.el6                                                                                                                          

Complete!
  • d.注意事項
        一定要找準出問題(依賴關係被破壞)的原因,以便確定回滾點id,千萬不能錯,不然回滾一點點不能解決問題,回滾多了就到最初版本,相當於剛剛裝的新系統,那就麻煩了!

5.yum回滾方法的拓展

  • 安裝了不想要的軟體,想回到沒安的狀態
  • yum安裝一個軟體包是會連同依賴包一起安裝,但是yum解除安裝時卻只解除安裝這個檔案包本身,此時使用回滾方法解決