repoquery詳解——linux查看包依賴關系的神器


    repoquery是yum擴展工具包yum-utils中的一個工具,所有如果你沒有repoquery命令的話,可以先 sudo yum install yum-utils 安裝yum-utils包。是為了加強和補充yum功能的工具,重點是查詢包的關系。repoquery的官方說明是:query information from Yum repositories,故名意思,它只能查看信息,並不能執行安裝卸載更新等實質性的操作。而且要和Yum庫配合使用。

    repoquery的命令格式和yum很像,但是又有不同,yum 的命令格式是yun [options] [command] [package ...], repoquery的命令格式是repoquery [options] [item ...],當然,也可以是repoquery -a [options],沒有item,表示所有。從命令格式的不同,也可以反映出repoquery只能做查詢而不支持實質性的操作。

    repoquery的操作分為5類,分別是常規操作、包查詢、包選擇、組查詢和組選擇,下面一一說明:

1.常規操作

    常規操作主要是規定repoquery的查詢的范圍,包括指定特定的庫--repoid以及用url方式指定--repofrompath、增加哪些被禁的庫--enablerepo、去除那些庫--disablerepo(都是針對配置文件已有的庫來說)、用什么插件之類的,還有其它的一些命令行常有的選項比如--quiet --version之類的,也歸到這一類里面。

2.包查詢

    包查詢選項主要是查詢包的一些信息,此時的item為包名。在描述時,item是主語,怎么說呢?舉個例子: repoquery --provides openssl ,這個命令查詢的是: openssh (主語)這個包提供了哪些rpm文件。

    查詢功能包括查詢基本描述信息--info、文件--list、需要哪些依賴庫--requires、提供了哪些包--provides、和誰淘汰--obsoletes、和誰沖突--conflicts、變更日志--changelog,來自哪里location,源rpm包的名字source等等。

    注:--requires只會列出依賴哪些庫,但是不會顯示這些庫來自哪個源包,如果要列出源包,再附上--resolve

    還有一個很重要的操作--show-duplicates,可以顯示所有重復的包,這個很有用。

3.包選擇

    包選擇操作中,item是賓語,也舉一個例子說明一下什么意思:比如  repoquery --whatprovides openssl-1.10.2k-8.el7 ,這個命令查詢的是:誰提供了  openssl-1.10.2k-8.el7 (賓語)這個包。看到沒有,很有意思,包選擇的操作中,會多一個whatxxx,和包查詢中的xxx操作對於,比如--whatrequiers(哪個包依賴item我,我是賓語)和和包查詢中的--requires(item我依賴哪些包,我是主語)。

    包選擇提供很多操作,包括whatrequires,whatconflicts等等,就不一一講了,具體執行以下 man repoquery 命令查看一下就好了。需要注意的是,item可以是具體的報名,也可以是一部分關鍵字,如果要精確匹配包名,可以用--exactdeps。

    這里還有一個--installed選項也很有用,它似的查詢的范圍僅僅限定在已經安裝了的包上面

4.組查詢和組選擇

   組查詢無非就是list grouppkgs requires四個,很簡單。組選擇更加簡單,只有-g一個,查詢所有的組。

 


免責聲明!

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



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