查看已安装的rpm软件包最可靠命令是rpm -qa,它直接读取rpm数据库、不依赖网络和缓存、无需root权限,可完整列出所有rpm安装的包(含手动安装),输出格式为“包名-版本-发布号.架构”。

直接用 rpm -qa 最可靠——它不依赖网络、不查缓存、不绕弯子,只要包装进系统了,就一定能列出来。
rpm -qa:底层查全量,不漏手动安装的包
这是 CentOS/RHEL/Fedora 上最基础也最稳的命令,直接读取 RPM 数据库,连 root 权限都不需要。输出是纯文本,每行一个 包名-版本-发布号.架构,比如 httpd-2.4.57-1.el9.x86_64。
-
rpm -qa | grep nginx快速确认 nginx 是否存在(注意匹配的是完整包名,不是服务名) -
rpm -qa --last按安装时间倒序,能一眼看出最近装了啥 - 它包含所有 rpm 安装的包,包括你用
rpm -i xxx.rpm手动装的、没走 yum 的那些——yum list installed会漏掉它们 - 别写成
rpm -aq,老版本可能报错;顺序必须是-qa
yum list installed:查 yum 管理的包,带源信息
如果你关心“这个包是从哪个仓库装的”,或者想区分 @base、@updates、@epel 这类来源,yum list installed 更合适。但它只显示 yum 认可的安装记录,不包括纯 rpm 安装的包。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 输出三列:
包名、版本、仓库标签(如updates或@System) -
yum list installed 'vim*'支持 shell 通配符,比rpm -qa的模糊匹配更可控 - 结果依赖本地 yum 缓存,但
--installed只读状态,即使很久没yum update也能用 - 如果看到
[installed,local],说明是本地dpkg -i风格装的(实际是 rpm),后续yum upgrade不会管它
dnf list installed:CentOS 8+ / RHEL 8+ 的默认推荐
CentOS 8 开始默认用 dnf 替代 yum,dnf list installed 功能和 yum list installed 几乎一样,但元数据更准、速度更快。如果你的系统 dnf --version 有输出,优先用这个。
- 输出格式一致,同样含仓库来源,适合审计或排查多源冲突
-
dnf list installed | grep -E '^(httpd|nginx)'可同时查多个关键词 - 在某些最小化安装里,yum 命令可能被软链到 dnf,但显式用
dnf更明确 - 不要混用
dnf和yum命令查同一类问题,避免因工具链差异导致认知偏差
真正容易被忽略的是:同一个软件,可能有多个包名(比如 python3、python3-pip、python3-setuptools),而 rpm -q python3 只查主包,查不到附属包。要确认功能是否可用,得结合 rpm -ql 看文件,或直接运行命令验证。










