首页/系统/信创系统运维速查/dnf repoquery 包查询详解
命令与包管理65 条

dnf repoquery 包查询详解

repoquery 面向仓库元数据做精细查询:按文件反查所属包、查依赖树、查更新来源,比 dnf search 更精确。

信创系统运维速查系统更新于 2026-10-13

repoquery 的定位

dnf repoquery 面向仓库元数据做精细查询:按文件反查所属包、查看包的依赖与反向依赖、列出可升级的包、浏览包内文件清单。它比 dnf search 更精确,适合依赖分析与变更评估。已安装文件的查询则要用 rpm 系列命令,两者数据源不同。

基本信息

所属插件dnf-plugins-core
按文件查包dnf repoquery --whatprovides /path/file
查依赖dnf repoquery --requires 包
反查被谁依赖dnf repoquery --whatrequires 包
查可升级dnf repoquery --upgrades

典型使用场景

  • 评估卸载影响:先看谁依赖这个包
  • 定位共享库由哪个包提供
  • 列出某个包会安装哪些文件
  • 升级前查看有哪些包可更新及其来源仓库
  • 核对同名包在不同仓库中的版本差异

常用查询

常用查询
dnf install -y dnf-plugins-core            # 插件未装时先安装
dnf repoquery -l nginx | head              # 列出包内含哪些文件
dnf repoquery --whatprovides 'libssl.so*'  # 按提供的文件反查
dnf repoquery --requires nginx             # 查看该包依赖什么
dnf repoquery --whatrequires openssl-libs  # 反查谁依赖它
dnf repoquery --upgrades | head            # 查看可升级的包
dnf repoquery --qf '%{name} %{version} %{repoid}' nginx   # 指定输出字段

常用选项

选项作用典型用途
--whatprovides按文件或能力反查包找库与命令的来源
--requires查看依赖项分析安装影响
--whatrequires反查依赖者卸载前评估风险
-l列出包内文件确认安装路径
--upgrades列出可升级包变更前评估范围
--qf自定义输出字段脚本化处理结果

使用建议

  • 查询前先确保元数据已缓存
  • 卸载前必做反查,避免牵出关键组件
  • 脚本使用自定义字段输出更稳定
  • 结果与已装状态分开核对,避免混淆
  • 把关键依赖关系记录进变更方案
repoquery 查询的是仓库中的可安装信息,已安装包的文件清单要用 rpm -ql,反查已装文件归属用 rpm -qf,两者不能互相替代。

输出怎么用

  • 包名与版本:确认候选版本
  • 来源仓库:确认包来自哪个源
  • 依赖列表:评估安装影响
  • 文件清单:确认安装路径与覆盖范围

易错点

  • --whatprovides 对目录名不生效:要写具体文件路径,路径含通配时要加引号防提前展开
  • 插件未安装导致命令不可用:报错提示找不到子命令时先装 dnf-plugins-core
  • 把仓库查询结果当成已安装状态:两者数据源不同,核对现状要用 rpm 系列命令
  • 卸载前不做反向依赖查询:可能连带删除业务依赖的组件,先用 --whatrequires 确认影响范围
  • 元数据过期导致结果偏差:查询前先刷新缓存,避免看到旧版本信息
  • 把查询结果直接当成变更方案:方案还要包含版本选择、来源与回滚方式,查询输出只是素材

数据来源与参考

  • dnf repoquery 文档
  • dnf-plugins-core 手册
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌