补充说明
repoquery 最初是 yum-utils 套件中的工具,后来被 DNF 接管为 dnf repoquery。它只查询仓库元数据,不安装软件包,适合在安装前确认版本、依赖、文件列表和提供者,在 RHEL/CentOS/Fedora 系上非常常用。
它支持本地已安装包和远程仓库两类数据源:默认查询所有可用包,--installed 只看已安装,--available 只看未安装。常用场景包括查某个文件属于哪个包(-f)、某包依赖了什么(--requires)、哪些包依赖它(--whatrequires)、以及包内包含哪些文件(-l)。
注意 RHEL 8 起 yum 已指向 DNF,旧的 repoquery 命令可能不再安装,应改用 dnf repoquery;DNF5 中部分选项有调整。使用前确保仓库元数据已缓存(dnf makecache),否则可能看到过期结果。
语法
repoquery [选项] [包名...]
dnf repoquery [选项] [包名...]
选项
-l, --list:列出包内文件-i, --info:显示包的基本信息-f, --file <路径>:查询文件所属的包--requires:显示依赖--provides:显示提供的 capability--whatrequires:显示依赖该包的包--resolve:解析依赖到具体包--installed/--available:限定数据源-a, --all:匹配所有包--tree-requires:以树形展示依赖
实例
# 查询仓库中 nginx 的版本与仓库来源
dnf repoquery -i nginx
# 查看包内包含哪些文件
dnf repoquery -l nginx
# 查询某个命令由哪个包提供
dnf repoquery -f /usr/sbin/nginx
# 查看包的依赖关系树
dnf repoquery --tree-requires httpd
# 找出哪些包依赖 openssl-libs
dnf repoquery --whatrequires openssl-libs
# 只查已安装的包
dnf repoquery --installed -a 'kernel*'
# 刷新元数据后再查询,避免使用过期缓存
sudo dnf makecache