前言:常用RPM的朋友們都知道,RPM簡單易用,但是它的依賴關系是最頭疼的!有時候比方說A包需要B包,B包需要C包,C包需要A包,好了。這就是最常見的死鎖了(類似數據庫有木有?)。這個時候有以下幾種方式可以解決:
A 強制安裝 ----暴力型
使用rpm -i --force --nodeps 強制安裝。忽略依賴關系。這種方法你可以先裝A包,再裝B包,再裝C包。這樣還是有點隱患的,感覺不是很踏實(雖然其實目前沒發現什么不好)。安裝后使用成功的前提是:你要搞清楚依賴關系,并且把這些包都裝好。好處是:不用管它們的具體依賴關系先后順序。
B 一次性全裝上--- 一網打盡型
可以把依賴的幾個包拷出來放在同一個文件夾里 然后 rpm -ivn *.rpm 這樣也可以 前提也是一個都不能少。
C 使用yum技術安裝 --使用服務器方式
yum是一個服務器資源技術。通過在線下載服務器資源的方式。 缺點:太繁瑣。要設置一堆的東西。優點:設置以后,很方便,需要的大多數資源都可以從服務器上找到。這點感覺很像maven2有木有?
參考:http://wenku.baidu.com/view/428c851352d380eb62946ded.html
D 使用redhat提供的解決方案,安裝依賴關系庫(強烈推薦)
例子:先安裝rpmdb,之后使用
rpm -ivh --aid samba*.rpm (一定要安裝rpmdb后才可以用這種方式安裝排除依賴關系) 該命令會自動把依賴關系中需要安裝的包都安裝上,包括: cups-libs-1.1.17-13.3.6.rpm samba-common-3.0.0-14.3E.i386.rpm samba-3.0.0-14.3E.i386.rpm samba-client-3.0.0-14.3E.i386.rpm 可以很簡單地解決直接安裝samba-3.0.0-14.3E.i386.rpm或者samba-client-3.0.0-14.3E.i386.rpm對samba-common-3.0.0-14.3E.i386.rpm 的依賴,而安裝 sambacommon-3.0.0-14.3E.i386.rpm 出現對都libcups.so.2庫文件的依賴,而且該庫文件所在的rpm包無法很快確定 上述方法可以很快解決依賴關系