我必须下载几个rpm包,其中一些包带有校验和,它们是做什么用的? 他们有必要安装rpm吗?
校验和用于确保您下载了完整的文件,并且/或没有被第三方修改或连接不良。
许多托管文件的站点还将托管一个可以与之比较的校验和文件。要运行比较(例如,md5 校验和),您可以执行以下操作:
给定
downloaded.file
是下载的文件,并且您有一个如下所示的校验和(file.md5)文件
8ead7f214e53482b06ef82727d8ba4e4 downloaded.file
你会跑
md5sum -c file.md5
输出将是
downloaded.file: OK
如果文件有匹配的总和。如果总和“不”匹配,您就知道您收到的文件与主机想要的文件不同。无论它是否是恶意的,您都知道您需要重试下载。
文件都是正确的,但 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另一篇文章是关于它的