linux查看服务依赖关系图,技术|教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性
我們都知道,在基于紅帽的Linux系統(tǒng)中,一個(gè)RPM包,需要把先將它依賴(lài)的其他包安裝好才能正常的工作。對(duì)于終端用戶(hù),RPM的安裝、更新、刪除中存在的依賴(lài)關(guān)系已經(jīng)被工具透明化了(如 yum或 DNF等)。但如果你是系統(tǒng)管理員或者RPM包的管理員,你需要諳熟RPM包的依賴(lài)關(guān)系,以便及時(shí)更新、刪除適當(dāng)?shù)陌鼇?lái)保證系統(tǒng)的正常運(yùn)行。
在本教程中,我將教大家如何檢查RPM包的依賴(lài)關(guān)系。無(wú)論這個(gè)包是否已經(jīng)安裝進(jìn)操作系統(tǒng)中,我們都有一些辦法來(lái)檢查它們的依賴(lài)性。
方法一
使用RPM命令可以列出目標(biāo)包所依賴(lài)的所有包,如下: $ rpm -qR
注意,這種方法只適用于已安裝的包。如果你需要檢查一個(gè)未安裝包的依賴(lài)關(guān)系,你首先需要把這個(gè)包先下載到本地來(lái)(不需要安裝)。
要下載一個(gè) RPM 包而不安裝,可以使用叫做'yumdownloader'的工具,下面我們先安裝yumdownloader:
$ sudo yum install yum-utils
現(xiàn)在我們來(lái)檢查一個(gè)未安裝的RPM包的依賴(lài)關(guān)系(本例使用 tcpdump)。首先,我們使用yumdownloader把tcpdump的RPM包下載下來(lái)
$ yumdownloader --destdir=. tcpdump
然后再使用 "-qpR"參數(shù)顯示該包的依賴(lài)關(guān)系。
# rpm -qpR tcpdump-4.4.0-2.fc19.i686.rpm
方法二
你可以使用repoquery工具來(lái)羅列包的依賴(lài)關(guān)系,它與包是否安裝無(wú)關(guān),這個(gè)工具包含在yum-utils中。
$ sudo yum install yum-utils
顯示目標(biāo)包所依賴(lài)的包:
$ repoquery --requires --resolve
為讓repoquery正常的工作,需要保持網(wǎng)絡(luò)的暢通,應(yīng)為repoquery需要在Yum庫(kù)中查找信息。
方法三
第三個(gè)方法是使用rpmreaper工具。這個(gè)工具本來(lái)是用作清理系統(tǒng)中無(wú)用以及它們所依賴(lài)的包,rpmreaper有很直觀的ncurses界面來(lái)展示已安裝的包和它們依賴(lài)關(guān)系的樹(shù)形圖。
安裝rpmrepater,在CentOS中,你需要先設(shè)置好EPEL庫(kù)
$ sudo yum install rpmreaper
只需運(yùn)行rpmreaper就可以看到RPM包的依賴(lài)關(guān)系:
$ rpmreaper
rpmrepater會(huì)向用戶(hù)顯示已安裝包的列表,你可以使用上/下箭頭來(lái)滾動(dòng)屏幕。
你可以在指定包上使用"r"鍵來(lái)顯示其依賴(lài)關(guān)系,循環(huán)在指定包上按下"r"鍵可以展示出余下的信息。
"L"標(biāo)志的意思是說(shuō)這個(gè)包是一片“孤葉”,意思說(shuō)說(shuō)沒(méi)有任何包依賴(lài)它。
"o"標(biāo)志是說(shuō)這個(gè)包是整個(gè)依賴(lài)鏈的中間部分。
按下"b"鍵會(huì)顯示其他依賴(lài)于該包的其他包。
方法四
還有一個(gè)辦法是使用rpmdep工具,rpmdep是一個(gè)命令行工具,可以顯示已安裝包的完整包依賴(lài)關(guān)系圖。該工具會(huì)分析RPM包的依賴(lài)性,從完整的排完序的拓?fù)鋱D中摘取部分包的信息,形成列表展示給用戶(hù)。該工具的輸出結(jié)果可以直接使用到Dotty(可視化展示工具)中去。
在Fedora中安裝rpmdep和dotty:
$ sudo yum install rpmorphan graphviz
生成包依賴(lài)的拓?fù)潢P(guān)系圖(例如 gzip):
$ rpmdep.pl -dot gzip.dot gzip
$ dot -Tpng -o output.png gzip.dot
教程到這個(gè)地方,我們用到了幾種辦法來(lái)檢查包的依賴(lài)關(guān)系。如果您想知道如何在居于Debian的系統(tǒng)中檢查.deb的包依賴(lài)關(guān)系,請(qǐng)閱讀另外一篇文檔。
本文由 LCTT 原創(chuàng)翻譯,Linux中國(guó) 榮譽(yù)推出
總結(jié)
以上是生活随笔為你收集整理的linux查看服务依赖关系图,技术|教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 查看linux的用户 7.2,linux
- 下一篇: more 目录linux,linux