
在 linux 中,使用 rpm 命令可以查询已安装或未安装的 RPM 软件包的详细信息,无需安装即可查看元数据。
查询已安装软件包的基本信息
用 -q(query)选项配合 -i(info)可查看已安装包的名称、版本、大小、许可证、描述等:
-
rpm -qi nginx—— 查看已安装的 nginx 包详情 -
rpm -qi package-name—— 替换为实际包名,注意必须是已安装的包名(非文件名)
若提示“package is not installed”,说明该包未安装,或名称不准确(可用 rpm -qa | grep xxx 模糊查找已安装包名)。
查询未安装的 RPM 文件信息
对下载好的 .rpm 文件(尚未安装),加 -p 参数即可读取其元数据:
-
rpm -qpi nginx-1.20.1-1.el7.x86_64.rpm—— 显示该 RPM 文件的摘要信息 -
rpm -qpl nginx-1.20.1-1.el7.x86_64.rpm—— 列出该包将安装的所有文件路径 -
rpm -qpR nginx-1.20.1-1.el7.x86_64.rpm—— 查看该包依赖的其他软件包
快速定位和筛选常用信息
结合 --queryformat 可自定义输出格式,适合脚本或快速提取关键字段:
-
rpm -qi nginx | grep -E "Name|Version|Release|Architecture"—— 提取核心版本字段 -
rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}n' nginx—— 输出标准 RPM 完整包名格式 -
rpm -qa --last | head -10—— 列出最近安装的 10 个包(按安装时间倒序)
常见问题与注意事项
RPM 查询依赖本地数据库(/var/lib/rpm/),仅对通过 rpm -i 或 yum/dnf 安装的包有效;从源码编译或 tarball 安装的软件不会被记录。
- 包名区分大小写,且通常不含版本号(如查
httpd,不是httpd-2.4.6) - 使用
rpm -qa | grep keyword是查找已安装包最常用的方式 - 查询系统自带包时,可能需 root 权限才能读取全部字段(如签名信息),但基本信息普通用户也可查看