簡體   English   中英

列出已安裝的軟件包,其中yum和rpm不匹配

[英]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

(另請參閱問題https://unix.stackexchange.com/q/190203/16640

這兩個命令以相同的方式工作,唯一的區別是“ yum list installed”輸出可能比“ rpm -qa”更大,因為yum還將在其輸出中顯示軟件包依賴性。

使用rpm安裝軟件包時,我們需要手動安裝依賴項,而yum會自動執行。 因此,在這種情況下,如果您只想列出使用的軟件包,請使用“ rpm -qa”,或者如果您需要列出所有與其相關的軟件包和依賴項,請使用“安裝的yum列表”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM