Linux rpm 查询软件包信息

7次阅读

Linux rpm 查询软件包信息

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 权限才能读取全部字段(如签名信息),但基本信息普通用户也可查看
text=ZqhQzanResources