如何列出 CentOS 或 RHEL 上所有已安装的软件包如何列出 CentOS 或 RHEL 上所有已安装的软件包如何列出 CentOS 或 RHEL 上所有已安装的软件包如何列出 CentOS 或 RHEL 上所有已安装的软件包
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何列出 CentOS 或 RHEL 上所有已安装的软件包

问题:我想知道我的 CentOS 机器上安装了哪些软件包,以便我可以在另一台计算机上复制所有安装。有没有办法获得自我设置初始 CentOS 系统以来安装的所有 RPM 软件包的完整列表?

当您想要创建一个与任何现有服务器 X 完全相同的设置的新服务器时,您需要找出服务器 X 上安装了哪些软件包。此外,当您尝试将旧 Linux 系统迁移到新安装的较新操作系统版本时,您需要跟踪以前安装的软件包列表。在其他时候,您可能只想知道从特定第三方存储库安装了哪些软件包。

如果您运行的是 CentOS 或 RHEL 系统,有几种方法可以从所有可用存储库或特定存储库获取所有已安装 RPM 软件包的列表。

方法一:rpm

显示 CentOS 上所有已安装软件包的最简单方法是通过 rpm 命令。以下命令查询所有已安装的软件包并显示结果。


$ rpm -qa

但是,rpm 命令本身无法识别存储库的概念。因此,如果您想获取从特定存储库安装的软件包列表,rpm 无法帮助您。

方法二:yum

与 rpm 类似,yum 软件包管理器还允许您获取已安装软件包的列表。


$ yum list installed

由于 yum 输出包含存储库信息,因此如果您只想获取从特定存储库安装的 RPM 软件包列表,可以使用 grep 过滤输出。以下命令显示从 EPEL 存储库安装的软件包列表。


$ yum list installed | grep @epel

方法三:repoquery

另一个用于查询 RPM 包和 yum 存储库信息的工具是 repoquery。该工具对于检查包依赖关系、搜索包内的文件以及来自不同存储库的包非常有用。您可以完全自定义和格式化其输出,以便可以轻松地将其提供给其他工具。

repoquery 是 yum-utils 包的一部分,因此您需要先安装它。


$ sudo yum install yum-utils

列出所有已安装的软件包:


$ repoquery -a --installed

要列出 EPEL 存储库中所有已安装的软件包:


$ repoquery -a --installed --qf "%{name} %{ui_from_repo}" | grep @epel

方法四:yumdb

如果您只对特定存储库感兴趣,另一个有用的工具是 yumdb 命令。该实用程序查询本地 yum 数据库以查找有关已安装软件包的信息。 yum 数据库是由 yum 命令生成的平面文件键值存储,用于存储任何特定于包的信息。

要查看从 EPEL 存储库安装的所有软件包:


$ yumdb search from_repo epel
©2015-2025 艾丽卡 support@alaica.com