如何构buildSHA-256校验和文件的rpm包?

在标准的单独RHEL 6.4 rpm构build环境中,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)中构build,校验和是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 

我如何configurationrpmbuild让生成的rpm文件基于SHA-256?

与docker无关,可以通过后续configuration启用

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

之所以这么做,是因为在RHEL 6.4中,是因为它有redhat-rpm-config软件包。

 bash-4.1# yum install redhat-rpm-config 

在这个包里,这个configuration存在于/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来检查所有的configuration。