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,两者不能互相替代。
输出怎么用
- 包名与版本:确认候选版本
- 来源仓库:确认包来自哪个源
- 依赖列表:评估安装影响
- 文件清单:确认安装路径与覆盖范围