Linux伺服器配置與管理系列---解決依賴關係破壞---yum回滾
阿新 • • 發佈:2018-12-23
軟體包依賴關係破壞如何解決
- 軟體包依賴關係破壞解決方案
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解除安裝時卻只解除安裝這個檔案包本身,此時使用回滾方法解決