rpm 包校验和有什么用?

问题描述 投票:0回答:2

我必须下载几个rpm包,其中一些包带有校验和,它们是做什么用的? 他们有必要安装rpm吗?

bash rpm
2个回答
1
投票

校验和用于确保您下载了完整的文件,并且/或没有被第三方修改或连接不良。

许多托管文件的站点还将托管一个可以与之比较的校验和文件。要运行比较(例如,md5 校验和),您可以执行以下操作:

给定

downloaded.file
是下载的文件,并且您有一个如下所示的校验和(file.md5)文件

8ead7f214e53482b06ef82727d8ba4e4 downloaded.file

你会跑

md5sum -c file.md5

输出将是

downloaded.file: OK

如果文件有匹配的总和。如果总和“不”匹配,您就知道您收到的文件与主机想要的文件不同。无论它是否是恶意的,您都知道您需要重试下载。


0
投票
any

文件都是正确的,但 rpm 文件在 rpm 数据库中存储了一个校验和,顺便说一下,该校验和与使用 md5sum 命令计算的校验和不匹配直接在文件上调用。这是因为前者不像后者那样仅使用 rpm 文件的位进行计算(如对任何类型的文件调用 md5sum),但它会考虑其他内容(如 rpm 标头)。 此校验和在 rpm 验证选项的其他属性中内部使用:

rpm {-V|--verify} [选择选项] [验证选项]

验证软件包会比较有关已安装文件的信息 包含有关从包中获取的文件的信息的包 元数据存储在 rpm 数据库中。除其他事项外,验证 比较每个的大小、摘要、权限、类型、所有者和组 文件。任何差异都会显示出来。未安装的文件 例如,从包中排除的文档文件 使用“--excludedocs”选项进行安装,将以静默方式进行 忽略。

主要是,如果你更改了 rpm 安装的文件,rpm -V 会注意到。例如,我猜这是 rpm 安装在检查配置文件是否已更改时使用的,以警告您并创建相应的 rpmsave 或 rpmnew 文件,但它也可以用作安全功能。

可以使用查询选项查询格式看到这个校验和:

~> rpm -qp --qf '%{SIGMD5}' $anRpm b2aad9123e965f4366d64150931e1cbb ~> md5sum $anRpm 673c14e5e70b2cdc2f5771c92dbf16d7 $anRpm

但是,我无法找到对此查询格式选项的明确参考或一般的列表:
rpm.org 中的queryformat

显然可以使用其他算法来生成 rpm 摘要,但我也没有找到明确的参考。

另一篇文章是关于它的

© www.soinside.com 2019 - 2024. All rights reserved.