rpm 解決依賴的方法


【RPM依賴】解決RPM包依賴的幾種方法

前言:常用RPM的朋友們都知道,RPM簡單易用,但是它的依賴關系是最頭疼的!

有時候比方說A包需要B包,B包需要C包,C包需要A包,好了。這就是最常見的死鎖了(類似數據庫有木有?)。

這個時候有以下幾種方式可以解決:

A、強制安裝 ----暴力型

# rpm  -ivh--force --nodepsgcc-c++-4.1.2-42.el5.i386.rpm

warning: gcc-c++-4.1.2-42.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

1:gcc-c++                   ########################################### [100%]

使用rpm -ivh --force --nodeps  強制安裝。忽略依賴關系。這種方法你可以先裝A包,再裝B包,再裝C包。這樣還是有點隱患的,感覺不是很踏實(雖然其實目前沒發現什么不好)。安裝后使用成功的前提是:你要搞清楚依賴關系,並且把這些包都裝好。好處是:不用管它們的具體依賴關系先后順序。

B、一次性全裝上--- 一網打盡型

可以把依賴的幾個包拷出來放在同一個文件夾里 然后 rpm -ivn *.rpm   這樣也可以 前提也是一個都不能少。

#rpm -ivn *.rpm

# yum  -y  localinstall  *.rpm

C、 使用yum技術安裝 --使用服務器方式

yum是一個服務器資源技術。通過在線下載服務器資源的方式。

缺點:太繁瑣。要設置一堆的東西。優點:設置以后,很方便,需要的大多數資源都可以從服務器上找到。

yum deplist  PACKAGE_NAME  列出一個包所有的依賴

如果沒有yum源,我們要離線在一台服務器上安裝httpd,那么可以把所有依賴打包:

#export  LANG=en_US.utf-8

# yum deplist  httpd | grep provider | awk '{print $2}' | sort | uniq

# yumdownloader  $(yum deplist  httpd | grep provider | awk '{print $2}' | sort | uniq)

#yumdownloader  httpd

然后在安裝服務器上:

#yum -y localinstall httpd

注:注意軟件包的版本

檢查系統是否已安裝某個軟件包:

#rpm  -q  --qf   '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n'    PACKAGE_NAME

D、自建倉庫

# yum -y install  createrepo

#mkdir -p /var/ftp/pub/localrepo

#mv -f  oracle_depspackage/*/var/ftp/pub/localrepo

#touch /etc/yum.repos.d/localrepo.repo

#echo "[localrepo]" >> /etc/yum.repos.d/localrepo.repo

#echo "name=Unixmen Repository" >> /etc/yum.repos.d/localrepo.repo

#echo "baseurl=file:///var/ftp/pub/localrepo" >> /etc/yum.repos.d/localrepo.repo

#echo "gpgcheck=0" >> /etc/yum.repos.d/localrepo.repo

#echo "enabled=1"  >> /etc/yum.repos.d/localrepo.repo

#createrepo -v /var/ftp/pub/localrepo

#yum clean all


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM