如何在Cent OS上有效地列出已安装和可用的软件包?
我已经尝试安装了yum list
,它应该输出所有已安装的列表,而rpm -qa
会产生不同的结果。
我应该相信哪一个?或者我省略了什么?
答案 0 :(得分:1)
我的理解是: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的列表(使用repoquery
作为包yum-utils
的一部分:
$ 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
答案 1 :(得分:0)
两个命令的工作方式相同,只是“yum list installed”输出可能大于'rpm -qa',因为yum也会在其输出中显示包依赖关系。
使用rpm安装软件包时,我们需要手动安装依赖项,而yum会自动执行此操作。所以在这种情况下,如果你想列出只使用'rpm -qa'的软件包,或者你需要列出与之关联的所有软件包和依赖项,请使用'yum list installed'