[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官網去下載
考到我們要裝的機器上面。
[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%]
問題解決。