如何使用SHA-256校验和为文件构建rpm包?

时间:2014-06-05 14:05:46

标签: redhat rpm docker rpmbuild

在标准的RHEL 6.4 rpm构建环境中,rpm包是使用SHA-256校验和生成的,它是通过命令rpm -qp --dump xxx.rpm获得的

[user@redhat64 abc]$ rpm -qp --dump package/rpm/abc-1.0.1-1.x86_64.rpm
..
/opt/company/abc/abc/1.0.1-1/bin/start.sh 507 1398338016 d8820685b6446ee36a85cc1f7387d14537d6f8bf5ce4c5a4ccd2f70e9066c859 0100750 user abcc 0
..

如果它是在docker环境中构建(仍然是RHEL6.4),则校验和为md5

[user@c1cbdf51d189 abc]$ rpm -qp --dump package/rpm/abc-1.0.1-1.x86_64.rpm
..
/opt/company/abc/abc/1.0.1-1/bin/start.sh 507 1401952578 f229759944ba77c3c8ba2982c55bbe70 0100750 user abcc 0
..

如果我检查了真实文件,那么该文件是相同的

[user@c1cbdf51d189 1.0.1-1]$ sha256sum bin/start.sh
d8820685b6446ee36a85cc1f7387d14537d6f8bf5ce4c5a4ccd2f70e9066c859  bin/start.sh
[user@c1cbdf51d189 1.0.1-1]$ md5sum bin/start.sh
f229759944ba77c3c8ba2982c55bbe70  bin/start.sh

如何配置rpmbuild让生成的rpm文件基于SHA-256?

1 个答案:

答案 0 :(得分:1)

它与docker无关,可以通过以下配置启用

echo "%_binary_filedigest_algorithm  8" >> $HOME/.rpmmacros

单独使用标准RHEL 6.4的原因是正确的,因为它有redhat-rpm-config个包。

bash-4.1# yum install redhat-rpm-config

在包中,此配置存在于/usr/lib/rpm/redhat/macros

bash-4.1# grep digest /usr/lib/rpm/redhat/macros
%_source_filedigest_algorithm 8
%_binary_filedigest_algorithm 8

您可以使用命令rpmbuild --showrc检查所有配置。