已安装 yum 列表 | wc -l 比。 rpm -qa | wc -l

yum list installed | wc -l Vs. rpm -qa | wc -l

这可以追溯到非常基础的知识,但是我对如何做感到困惑。

我们知道 yum 是一个存储库管理器,它基于 rpm 基于 RPM 的系统(如 Fedora)中的包管理器。

话虽如此,我认为这两个命令可用于产生相同的输出(从这个意义上说,我猜 yum 命令是 rpm 命令的包装器),但事实证明我错了。请考虑以下示例:

[myuser@localhost ~] yum list installed | wc -l
1627 

[myuser@localhost ~] rpm -qa | wc -l
1640

这两个命令产生不同的结果,我认为不应该。如果有人能解释一下背后的场景,我将不胜感激。

PS: 我在 Fedora 28

它们不会产生完全相同的输出...yum list installed 还会打印一些 headers:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * epel: ftp.nluug.nl
epel
Installed Packages

此外,一些软件包可以在多行中打印其版本号和存储库。

如果您开始计算这些行数,那么计数将不正确。请注意 yum list installed 的输出也会在同一行上重新打印输出;不确定 wc 是如何处理的...

然而 rpm -qa | wc -l 的计数也有偏差;因为它包含 pubkey 条目;这不是真正的包裹。

看看这个答案,其中有很多关于这些输出的细节:https://unix.stackexchange.com/a/330599/64031