CentOS或者RHEL 系統環境下,RPM 的依賴性是個很讓人頭疼的問題。每次系統安裝完成事後,想再裝一個軟件包,敲下回車以前,都會心驚膽戰,生怕跳出個依賴性錯誤。而在一個依賴性錯誤的背後,可能還牽連着更多的依賴性。這個問題讓不少 Linux 用戶望而生畏。 sql
RPM 包的依賴關係提及來是簡單的由於它所謂的依賴關係僅僅是一個個簡單的如「要安裝 A,須要提早準備好 a1, a2, a3」這樣的條件。 oop
例如,當咱們安裝gcc時。找到安裝光盤,當心翼翼地掛載上,並找到了gcc-4.1.2-50.el5.i386.rpm 嘗試着用 url
rpm -ivh gcc-4.1.2-50.el5.i386.rpm spa
進行安裝。系統告之缺乏 glibc-devel 和 libgomp,當你試着安裝 glibc-devel,系統又提示缺乏 glibc-headers。繼續下去,又發現缺乏 kernel-headers。很苦惱,心想若是當初選擇了徹底安裝該有多好!同時也抱怨怎麼Linux就這麼難用的啊,要是像Windows下面一直next多好啊!最終,按照依賴提示,遞歸似的完成了 gcc 的安裝。很慶幸的完成了這個任務。其實只是由於這個安裝任務的依賴關係還不夠複雜到把咱們嚇退罷了。 .net
那我強烈推薦使用yum! sqlite
yum 對 RPM 包的處理是一個典型的「空間換時間」過程。經過對源中全部 RPM 包的預處理,生成全部安裝包關於包含文件,依賴,衝突等信息的索引,而且以 sqlite 格式存放在 /var/cache/yum 對應目錄下面。 blog
用DVD創建本地yum源 遞歸
既然 yum 已經很好的解決了 RPM 包的依賴問題,要解決的就是速度問題。本地光驅的訪問速度甚至快過 100M 局域網,並且在最近一些發行版安裝盤中,已經預置好 repo 信息,並存放在名爲 repodata 的目錄中。能夠說安裝盤自己就是一個現成的 yum 源。在 CentOS5 中,預置了多個 repo,放在了/etc/yum.repos.d目錄中; 索引
首先,把光盤放入光驅,掛載光盤。 it
# mount /dev/hdc /media/cdrom
mount: block device /dev/hdc is write-protected, mounting read-only
CentOS 5.6中能夠自動掛載,因此能夠不須要建cdrom文件夾來掛載DVD,能夠直接使用CentOS_5.6_Final
若是在本地有安裝盤鏡像,也經過 loop 方式掛載到相應目錄。
# mount -o loop CentOS-5.6-i386-bin-DVD.iso /media/cdrom
而後,編輯 yum 源配置文件,添加一個本地 yum 源。這裏是一張 CentOS 5.6的 DVD 安裝盤,它的 repo 對應是dvd.repo
若是是RHEL Server,則對應的baseurl是
baseurl=file:///media/cdrom/Server
或者直接在/etc/yum.repos.d目錄中新建 dvd.repo
而後使用vi打開,寫入以下類容:
[dvd]
name=install CentOS DVD
baseurl=file:///media/cdrom
enable=1
gpgcheck=0
完成本地源配置事後,接下來就能夠用 yum 進行 RPM 包的補裝了。首先,查看剛剛配置好的 yum 源。
yum list
而後,經過熟知的 yum install 來補裝軟件包。從輸出信息能夠看到,yum 會幫咱們處理好 RPM 包的依賴關係。同時因爲包都在本地,下載的時間幾乎能夠忽略。
補充說明:經常使用命令
原文地址:http://blog.csdn.net/tsangchoonhsia/article/details/6414780