使用 RPM 数据库校验和

Utilizing RPM database checksums

我想编写我自己的验证程序,确保从 yum 存储库下载的文件与它们附带的校验和相同。这类似于 yum-verify。

在 Ubuntu,这是通过收集 .md5sums 文件的内容来完成的。我相信在 RedHat 上,此信息保存在位于 /var/lib/rpm 的 Berkeley DB 文件中。在 BaseNames、Packages、Sha1header 和 Sigmd5 上使用 db_dump,我研究了这些文件,我认为它们不言自明。

基本上,我如何以编程方式验证给定文件的校验和(没有 bash 使用 yum-verify 的脚本)?

TIA。

参见 lib/verify.c 中的 rpm --verify 代码,了解如何使用 C retrieve/verify 文件摘要。

Python 绑定可能有足够的方法来 retrieve/verify 文件摘要(但我想不出任何 Python 广泛使用的应用程序智能地实现 rpm 文件摘要验证)