[英]Listing installed packages with yum and rpm mismatch
如何有效地列出Cent OS上已安裝和可用的軟件包?
我已經嘗試安裝yum list
,它應該在rpm -qa
產生大小不同的結果時輸出所有已安裝的列表。
我應該信任哪一個? 還是我省略了什么?
我的理解是: rpm -qa
是更好地知道安裝的是什么(RPM包,對吧!)。 而yum
最好知道可以安裝什么並找到所需的依賴項。 通常將yum
用於這兩個目的都可以。
我在CentOS 7系統上進行了測試。 它們具有幾乎相同的列表,除了rpm還報告了一些gpg-pubkey
偽軟件包(嘗試rpm -qa gpg-pubkey\\*
)。
如果要比較系統上的列表,請首先獲取rpm
的列表:
$ rpm -q -a --qf '%{NAME}\t%{ARCH}\t%{VERSION}\t%{RELEASE}\n' | sort > /tmp/rpm-qa.lst
然后提取YUM的列表(使用yum-utils
包中的repoquery
:
$ repoquery -q -a --installed --qf '%{NAME}\t%{ARCH}\t%{VERSION}\t%{RELEASE}' | sort > /tmp/repo-qa.lst
然后比較:
$ diff -u0 /tmp/rpm-qa.lst /tmp/repo-qa.lst
--- /tmp/rpm-qa.lst 2015-03-08 16:07:38.297325253 +0100
+++ /tmp/repo-qa.lst 2015-03-08 16:07:43.281438369 +0100
@@ -143,1 +142,0 @@
-gpg-pubkey (none) 352c64e5 52ae6884
這兩個命令以相同的方式工作,唯一的區別是“ yum list installed”輸出可能比“ rpm -qa”更大,因為yum還將在其輸出中顯示軟件包依賴性。
使用rpm安裝軟件包時,我們需要手動安裝依賴項,而yum會自動執行。 因此,在這種情況下,如果您只想列出使用的軟件包,請使用“ rpm -qa”,或者如果您需要列出所有與其相關的軟件包和依賴項,請使用“安裝的yum列表”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.