yum 和rpm 使用小技巧,解決 yum 安裝過程中的rpm 依賴問題。

[root@sy-ck-videoserver-182-46 ~]# yum install -y libdb-devel.x86_64
Resolving Dependencies
--> Running transaction check
---> Package libdb-devel.x86_64 0:5.3.21-19.el7 will be installed
--> Processing Dependency: libdb(x86-64) = 5.3.21-19.el7 for package: libdb-devel-5.3.21-19.el7.x86_64
--> Finished Dependency Resolution
Error: Package: libdb-devel-5.3.21-19.el7.x86_64 (base)
           Requires: libdb(x86-64) = 5.3.21-19.el7
           Installed: libdb-5.3.21-20.el7.x86_64 (@anaconda)
               libdb(x86-64) = 5.3.21-20.el7
           Available: libdb-5.3.21-19.el7.x86_64 (base)
               libdb(x86-64) = 5.3.21-19.el7
 You could try using --skip-broken to work around the problem
** Found 2 pre-existing rpmdb problem(s), 'yum check' output follows:
nss-softokn-freebl-3.28.3-6.el7.x86_64 is a duplicate with nss-softokn-freebl-3.16.2.3-14.4.el7.i686
pciutils-libs-3.5.1-2.el7.x86_64 is a duplicate with pciutils-libs-3.5.1-1.el7.i686

如上所示,有時候系統版本比較高,但是軟件版本低的話會出現依賴包版本低於系統版本,這個時候無法進行安裝,那我們可能需要強制將包的版本進行回退。

這個只是舉個例子,其他的軟件也可以進程模仿,不過,操作rpm有風險,依賴關係複雜,需謹慎。

如上提示我們需要的版本是libdb-5.3.21-19.el7.x86_64但是系統版本是libdb-5.3.21-20.el7.x86_64

這個時候我們需要把libdb-5.3.21-19.el7.x86_64.rpm下載下來,可以使用yum下載,

找一臺yum源有這個版本的服務器,使用yumdownloader 這個命令下載,如果沒有yumdownloader 這個命令:yum install yum-utils -y

yumdownloader    libdb.x86_64

可以看到一個rpm文件被下載了下來。如果yum源找不到我們要的版本則可以到rpm官網去下載

http://rpm.pbone.net/

考到我們要裝的機器上面。

[root@sy-ck-videoserver-182-46 ~]# rpm -ivh libdb-5.3.21-19.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
	package libdb-5.3.21-20.el7.x86_64 (which is newer than libdb-5.3.21-19.el7.x86_64) is already installed
	file /usr/lib64/libdb-5.3.so from install of libdb-5.3.21-19.el7.x86_64 conflicts with file from package libdb-5.3.21-20.el7.x86_64

直接安裝發現報錯,提示現有的版本比安裝的版本高,安裝不成功,怎麼辦呢,這個時候就需要強制回退到更低的版本。

使用命令 :rpm -Uvh --oldpackage   包名   發現報了另外一個錯誤,所安裝的包被其他包依賴。如果必須要裝這個版本,依賴他的軟件也需要降級。

[root@sy-ck-videoserver-182-46 ~]# rpm -Uvh --oldpackage  libdb-5.3.21-19.el7.x86_64.rpm 
error: Failed dependencies:
    libdb(x86-64) = 5.3.21-20.el7 is needed by (installed) libdb-utils-5.3.21-20.el7.x86_64

於是我們再下載libdb-utils-5.3.21-19.el7.x86_64.rpm

把兩個包一起安裝

[root@sy-ck-videoserver-182-46 ~]# rpm -Uvh --oldpackage  libdb-5.3.21-19.el7.x86_64.rpm  libdb-utils-5.3.21-19.el7.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:libdb-5.3.21-19.el7              ################################# [ 25%]
   2:libdb-utils-5.3.21-19.el7        ################################# [ 50%]
Cleaning up / removing...
   3:libdb-utils-5.3.21-20.el7        ################################# [ 75%]
   4:libdb-5.3.21-20.el7              ################################# [100%]

問題解決。

 

發佈了31 篇原創文章 · 獲贊 30 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章