如何使用“repoquery”命令列出包依赖项

“repoquery”是一个从 YUM 存储库中查询信息的程序,类似于 rpm 查询。
应该安装“yum-utils”包来使用这个命令。
如果它尚未安装在系统中,我们可以通过以下 yum 命令安装该软件包。

# yum install yum-utils

以下命令让我们可以查看已安装的 rpm 包的依赖关系。

# repoquery --requires --resolve [package]

其中:

  • -requires - 列出包依赖项。
  • -resolve - 与 -requires 一起使用时,解析原始包的功能。
  • package - rpm 包名

例子:

# repoquery --requires --resolve nano
info-0:5.1-4.el7.x86_64
ncurses-libs-0:5.9-14.20130511.el7_4.x86_64
bash-0:4.2.46-29.el7_4.x86_64
glibc-0:2.17-55.el7_0.3.i686
glibc-0:2.17-106.el7_2.1.x86_64

我们可以使用 repoquery 命令来收集作为我们要更新的软件包的依赖项的软件包列表。
请注意,即使我们为要查询的包指定版本,这也会获取最新版本的依赖项

有关更多信息,请参阅手册页 man repoquery 或者帮助文本“repoquery -help”。

# man repoquery
# repoquery --help

递归解决依赖关系

我们可以使用 -recursive 选项和“-requires -resolve”选项来递归查询包。
例如 :

# repoquery --requires --resolve --recursive nano
pcre-0:8.32-15.el7_2.1.x86_64
glibc-0:2.17-55.el7_0.3.i686
bash-0:4.2.46-29.el7_4.x86_64
查看更多教程 https://on  itroad.com

替代方法 - yumdownloader

另一种方法是使用 yumdownloader 但请注意,这不会获取依赖项的依赖项,因此我们可能仍然需要在列表中的其他包上运行它,直到我们满足所有要求。

# yumdownloader --resolve systemd
Loaded plugins: langpacks, product-id
--> Running transaction check
---> Package systemd.x86_64 0:219-42.el7_4.4 will be installed
--> Processing Dependency: systemd-libs = 219-42.el7_4.4 for package: systemd-219-42.el7_4.4.x86_64
日期:2020-09-17 00:13:41 来源:oir作者:oir