识别最合适的依赖 rpm 包

Identifying most suitable dependent rpm packages

不确定 SO 是问这个问题的最佳地点,但它与开发相关,所以也许有人可以提供帮助。

我已经编写了一个应用程序(在 python 中,但这并不重要)它解析 Yum 存储库数据库以整理 RPM 包及其依赖项。我遇到的问题是,当多个依赖项满足时,我吸入了太多包。

具体示例:我正在寻找满足Java-1.8.0依赖关系的包列表,并获得libjli.so()(64bit)的依赖关系。 libjli.so()(64bit) 我的代码正确地计算出这是由 Java 1.8、1.7 和 1.6 流中的多个 -devel 包提供的。不幸的是,所有三个版本(及其依赖项)都包含在我的列表中。

我想我的问题是,给定一个满足要求的包列表,确定要包括的最合适包的最佳方法是什么?即在解析 Java-1.8.0 的依赖项时,仅包含 1.8.0 的 -devel 包,而不包含 1.6 和 1.7 的 -devel 包。

我知道这是我的代码的问题,我只是不确定 yum 生态系统提供了哪些工具来帮助我确定哪个包最适合从多个列表中包含。

  1. 不看你的代码很难判断。

  2. 百胜死了。如果你正在开发新东西,你应该在 DNF 之上开发。 DNF使用satsolver算法(https://doc.opensuse.org/projects/satsolver/11.4/index.html) and you can use libdnf https://github.com/rpm-software-management/libdnf(原名libhif,原名libhawkey)。