如何构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。