我們都知道,在基於紅帽的Linux系統中,一個RPM包,需要把先將它依賴的其他包安裝好才能正常的工作。對於終端用戶,RPM的安裝、更新、刪除中存在的依賴關系已經被工具透明化了(如 yum或 DNF等)。但如果你是系統管理員或者RPM包的管理員,你需要谙熟RPM包的依賴關系,以便及時更新、刪除適當的包來保證系統的正常運行。
在本教程中,我將教大家如何檢查RPM包的依賴關系。無論這個包是否已經安裝進操作系統中,我們都有一些辦法來檢查它們的依賴性。
制作自己的rpm包 http://www.linuxidc.com/Linux/2013-06/86435.htm
Linux 下rpm安裝後的目錄結構和一些配置 http://www.linuxidc.com/Linux/2013-06/85761.htm
rpm與yum的綜合性介紹與示例演示 http://www.linuxidc.com/Linux/2013-05/84480.htm
RedHat Linux---rpm 命令詳解 http://www.linuxidc.com/Linux/2013-03/81971.htm
使用RPM命令可以列出目標包所依賴的所有包,如下: $ rpm -qR
注意,這種方法只適用於已安裝的包。如果你需要檢查一個未安裝包的依賴關系,你首先需要把這個包先下載到本地來(不需要安裝)。
要下載一個 RPM 包而不安裝,可以使用叫做'yumdownloader'的工具,下面我們先安裝yumdownloader:
現在我們來檢查一個未安裝的RPM包的依賴關系(本例使用 tcpdump)。首先,我們使用yumdownloader把tcpdump的RPM包下載下來
然後再使用 "-qpR"參數顯示該包的依賴關系。
你可以使用repoquery工具來羅列包的依賴關系,它與包是否安裝無關,這個工具包含在yum-utils中。
顯示目標包所依賴的包:
為讓repoquery正常的工作,需要保持網絡的暢通,應為repoquery需要在Yum庫中查找信息。
第三個方法是使用rpmreaper工具。這個工具本來是用作清理系統中無用以及它們所依賴的包,rpmreaper有很直觀的ncurses界面來展示已安裝的包和它們依賴關系的樹形圖。
安裝rpmrepater,在CentOS中,你需要先設置好EPEL庫
只需運行rpmreaper就可以看到RPM包的依賴關系:
rpmrepater會向用戶顯示已安裝包的列表,你可以使用上/下箭頭來滾動屏幕。
你可以在指定包上使用"r"鍵來顯示其依賴關系,循環在指定包上按下"r"鍵可以展示出余下的信息。
"L"標志的意思是說這個包是一片“孤葉”,意思說說沒有任何包依賴它。
"o"標志是說這個包是整個依賴鏈的中間部分。
按下"b"鍵會顯示其他依賴於該包的其他包。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-08/105626p2.htm