Linux命令-rpmquery(RPM包查询工具)
2026/7/15 9:22:49 网站建设 项目流程

Linux命令-rpmquery(RPM包查询工具)

    • 🔰简介
    • 📖语法
    • ⚙️选项
    • 💡示例
      • 示例 1:查询所有已安装包并过滤
      • 示例 2:查询文件所属的 RPM 包
      • 示例 3:查询包的详细信息和文件列表
      • 示例 4:查询未安装的 RPM 包文件
      • 示例 5:对比 rpm vs rpmquery vs yum/dnf info
    • ⚠️注意
    • 📝总结
    • 📚相关命令

rpmquery 是 RPM 包管理器的查询前端工具,功能等同于rpm -q,用于查询已安装或未安装 RPM 包的各类信息。在 Red Hat/CentOS/Fedora 系统上是日常包管理中使用频率最高的命令之一。

🔰简介

rpmquery 属于 rpm 软件包的一部分,随rpm包一同安装。它本质上是对rpm -q命令的封装,提供更直观的查询语法。在 RHEL/CentOS/Fedora 等基于 RPM 的发行版上默认可用。

特性说明
所属软件包rpm
功能等价rpm -q
适用发行版RHEL、CentOS、Fedora、openSUSE、Rocky Linux
数据库路径/var/lib/rpm/
普通用户可执行查询操作(只读)

注意:rpmquery 和rpm -q输出完全一致,两者可互换使用。部分发行版可能不提供 rpmquery,此时直接用rpm -q即可。

📖语法

rpmquery[选项][包名...]rpmquery[选项]-f文件路径 rpmquery[选项]-pRPM包文件

⚙️选项

选项说明
-a列出所有已安装的包
-f 文件查询指定文件属于哪个包
-p 包文件查询未安装的 RPM 包文件
-i显示包的详细信息
-l列出包安装的所有文件
-c仅列出配置文件
-d仅列出文档文件
-R列出包的依赖(Requires)
--provides列出包提供的能力
--requires同 -R,列出依赖
--whatrequires列出被哪些包依赖
--changelog显示变更日志
--scripts显示安装/卸载脚本
--queryformat=格式自定义输出格式
--last按安装时间排序

💡示例

示例 1:查询所有已安装包并过滤

查找系统中所有已安装的内核相关包:

# 查询所有已安装包,过滤包含 kernel 的rpmquery-a|grepkernel# 输出示例:kernel-5.14.0-284.11.1.el9_2.x86_64 kernel-5.14.0-162.6.1.el9_0.x86_64 kernel-core-5.14.0-284.11.1.el9_2.x86_64 kernel-modules-5.14.0-284.11.1.el9_2.x86_64 kernel-devel-5.14.0-284.11.1.el9_2.x86_64

统计系统已安装包的总数:

rpmquery-a|wc-l# 输出示例:487

按安装时间列出最近安装的 10 个包:

rpmquery-a--last|head-10# 输出示例:openssl-3.0.7-6.el9_2.x86_64 Tue Jun1015:23:012025bash-5.2.15-2.el9.x86_64 Tue Jun1015:20:452025coreutils-9.0-6.el9.x86_64 Tue Jun1015:20:302025

示例 2:查询文件所属的 RPM 包

当需要知道某个命令或配置文件来自哪个包时:

# 查询 /usr/bin/vim 属于哪个包rpmquery-f/usr/bin/vim# 输出示例:vim-enhanced-9.0.1677-1.el9.x86_64
# 查询某个库文件属于哪个包rpmquery-f/lib64/libc.so.6# 输出示例:glibc-2.34-60.el9.x86_64
# 查询某个命令的来源包,连同版本信息rpmquery-f$(whichssh)# 输出示例:openssh-clients-8.7p1-30.el9.x86_64

注意:如果文件不属于任何 RPM 包(比如手动编译安装的),rpmquery 将无输出。

示例 3:查询包的详细信息和文件列表

查看 bash 包的详细信息:

rpmquery-ibash# 输出示例:Name:bashVersion:5.2.15 Release:2.el9 Architecture: x86_64 Install Date: Tue10Jun202503:20:45 PM CST Group:Unspecified Size:9757488License:GPLv3+ Signature:RSA/SHA256, Mon 01 May202508:00:00 AM CST, Key ID 199e2f91fd431d51 Source RPM:bash-5.2.15-2.el9.src.rpm Build Date:Mon 01 May202506:12:33 AM CST Build Host:x86-01.stream9.example.com Packager:CentOS Vendor:CentOS URL:https://www.gnu.org/software/bash Summary:The GNU Bourne Again shell Description:The GNU Bourne Again shell(Bash)is a shell orcommandlanguage interpreter that is compatible with the Bourne shell(sh). Bash incorporates useful features from the Korn shell(ksh)and the C shell(csh). Mostshscripts can be run bybashwithout modification.

列出 bash 包安装的所有文件:

rpmquery-lbash# 输出示例:/bin/bash /bin/sh /etc/skel/.bash_logout /etc/skel/.bash_profile /etc/skel/.bashrc /usr/bin/bashbug-64 /usr/share/doc/bash-5.2.15 /usr/share/doc/bash-5.2.15/CHANGES /usr/share/doc/bash-5.2.15/COPYING /usr/share/doc/bash-5.2.15/FAQ /usr/share/info/bash.info.gz /usr/share/man/man1/bash.1.gz

仅列出配置文件:

rpmquery-cbash# 输出示例:/etc/skel/.bash_logout /etc/skel/.bash_profile /etc/skel/.bashrc

查询包的依赖关系:

rpmquery-Rbash# 输出示例:/sbin/install-info libc.so.6()(64bit)libc.so.6(GLIBC_2.15)(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2.5)(64bit)libreadline.so.8()(64bit)libtinfo.so.6()(64bit)rtld(GNU_HASH)

示例 4:查询未安装的 RPM 包文件

在安装前检查一个 RPM 包的内容:

# 查看 RPM 包文件的信息(不需要安装)rpmquery-p/tmp/nginx-1.24.0-1.el9.ngx.x86_64.rpm# 输出示例:nginx-1.24.0-1.el9.ngx.x86_64# 查看未安装包的详细描述rpmquery-ip/tmp/nginx-1.24.0-1.el9.ngx.x86_64.rpm# 输出示例:Name:nginx Version:1.24.0 Release:1.el9.ngx Architecture: x86_64...

示例 5:对比 rpm vs rpmquery vs yum/dnf info

对比项rpm -qrpmqueryyum/dnf info
查询已安装包支持支持支持
查询未安装包文件rpm -qprpmquery -p不支持
查询远程仓库包不支持不支持支持
需要网络
输出丰富度详细详细更详细
执行速度较慢
# 三种方式查询已安装的包——输出等价rpm-qbashrpmquerybash# 输出均为:bash-5.2.15-2.el9.x86_64# dnf info 额外显示仓库来源和大小dnf infobash# 输出示例:Installed Packages Name:bashVersion:5.2.15 Release:2.el9 Architecture:x86_64 Size:9.3M Source:bash-5.2.15-2.el9.src.rpm Repository:@System

⚠️注意

  • rpmquery 查询的是本地 RPM 数据库,不需要网络连接
  • 如果 RPM 数据库损坏(/var/lib/rpm/),查询可能失败,需用rpmdb --rebuilddb修复
  • -f选项查询的文件必须是由 RPM 安装的,手动放置的文件无法追溯
  • -p选项后面跟的是.rpm文件路径,不是包名
  • 在 Ubuntu/Debian 系统上无此命令,对应工具为dpkg -ldpkg -S

📝总结

rpmquery 是 RPM 体系下最常用的包查询工具,与rpm -q完全等价。掌握-a-f-i-l-R这几个核心选项,即可覆盖日常 90% 的查询场景。查询未安装包用-p,查配置文件用-c,查文档用-d,这些是排障时的利器。

📚相关命令

  • rpm— RPM 包管理器主命令
  • rpmdb— RPM 数据库操作
  • rpmverify— RPM 包完整性验证
  • rpm2cpio— 从 RPM 包提取文件
  • dnf/yum— 高级包管理器
  • dpkg— Debian 系包查询工具

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询