在本教程中,我们将向您展示如何在 CentOS 上列出和筛选已安装的软件包。了解如何列出 CentOS 系统上已安装的软件包,在需要在另一台机器上安装相同软件包或想要重新安装系统的情况下会很有帮助。
我们还将向您展示如何检查特定软件包是否已安装、统计已安装软件包的数量,以及查看已安装软件包的版本。
使用 Yum 列出已安装的软件包
YUM(Yellow dog Updater)是 CentOS 默认的软件包管理器。它可用于从官方和第三方 CentOS 仓库下载、安装、删除、查询和管理 CentOS RPM 软件包。
在当前版本中,yum 是指向 dnf 的符号链接,因此这两个名称都可以使用下面的命令。
要使用 yum 列出 CentOS 系统上已安装的软件包,请使用以下命令:
sudo yum list installed它将打印所有已安装软件包的列表,包括 RPM 软件包的版本和仓库信息。

通常,软件包列表很长,为了获得更好的可读性,最好将输出通过管道传递给 less:
终端sudo yum list installed | less要查找特定软件包是否已安装,请使用 grep 命令筛选输出。
例如,要查找系统上是否安装了 unzip 软件包,您可以运行:
终端sudo yum list installed | grep unzip输出unzip.x86_64 6.0-19.el7 @anaconda上面的输出表明机器上已安装 unzip 6.0-19 版本。
使用 Rpm 列出已安装的软件包
带有 -q 选项的 rpm 命令允许您查询软件包。
以下命令将列出所有已安装的软件包:
终端sudo rpm -qa要查询(搜索)某个软件包是否已安装,请将软件包名称传递给 rpm -q 命令。以下命令将显示系统上是否安装了 tmux 软件包:
sudo rpm -q tmux如果该软件包已安装,您将看到类似如下的内容:
输出tmux-1.8-4.el7.x86_64否则,该命令将打印:
输出package tmux2is not installed要获取有关所查询软件包的更多信息,请传递 -i:
sudo rpm -qi tmux创建所有已安装软件包的列表
要创建 CentOS 系统上所有已安装软件包名称的列表并将其保存到名为 packages_list.txt 的文件中,请将命令输出重定向到该文件:
sudo rpm -qa > packages_list.txt要在另一台服务器上安装相同的软件包,您可以使用 cat 命令将所有软件包传递给 yum:
sudo yum -y install $(cat packages_list.txt)统计已安装软件包的数量
要查看系统上安装了多少个软件包,请使用与之前相同的命令,但不是将输出重定向到文件,而是将其通过管道传递给 wc 工具来统计行数:
终端sudo rpm -qa | wc -l输出603上面的输出表明已安装了 603 个软件包。