在标准的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?
答案 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
检查所有配置。