相当于rpm -Va的Python

时间:2018-07-31 20:08:36

标签: python centos rpm

我需要查询rpm db以验证所有软件包。我可以从命令行使用rpm -Va来执行此操作,但是我有一个正在收集其他信息的python二进制文件。我想知道是否有python等效项。

我知道我可以使用subprocess.Popen(["rpm","Va"]),但是命令行查询花费的时间很长,所以我希望有一种更加完善的python方式。我已经看过rpm python模块,但是我从文档中看不到如何做我想做的事情。

TIA

编辑:改写一些内容

1 个答案:

答案 0 :(得分:0)

rpm-Python绑定不提供对执行rpm -VA的例程的直接绑定。

有两种方法可以在Python中实现rpm -Va:

1)直接从Python调用rpmlib中的例程。这种方法假定您可以设置需要正确传递的数据结构,但这正是rpm本身所做的。

2)使用现有的rpmdb标头检索机制和标签检索机制来获取执行验证并在Python中进行验证所需的信息。请参阅lib / verify.c以了解标头中包含的哪些信息已得到验证。

yum或dnf中可能存在通过方法#2进行验证的Python代码