我一直在用mock建立rpms。这是一个两步过程。
mkdir buildsrpm
mock buildsrpm --spec myprogram-1.spec --sources myprogram-1.tar.gz --resultdir buildsrpm
mkdir rebuild
mock rebuild buildsrpm/myprogram-1.src.rpm --resultdir rebuild
第一步是构建源rpm。第二步是构建rpm。
在我使用的过程中,我创建了存储结果的目录。
我跑的时候注意到了
diff -qrs buildsrpm/myprogram-1.src.rpm rebuild/myprogram-1.src.rpm
结果是他们不同。
所以我的问题是:
mock rebuild
会生成源rpm?显然我不需要一个,因为我提供了一个源rpm作为重建的输入。答案 0 :(得分:1)
尝试在不同的chroot中运行它。 E.g:
mock -r fedora-23-x86_64 foo-1.0.16-1.fc22.src.rpm
你会发现它会创建(在二进制包旁边)foo-1.0.16-1.fc23.src.rpm
。查看disttag的差异。
使用来自该chroot的rpmbuild
命令在chroot内部构建生成的SRPM。这可能会也可能不会产生差异(在那些src.rpm上尝试rpm -qpi
)。在Fedora 22和23之间可能没有差别,但“建立日期”(因此它们总是二元不同)。但Epel-5和Fedora-23在使用的校验和(MD5与SHA)方面甚至存在差异。
如果您使用Mock's sign plugin,则生成的SRPM甚至可以签名。
总结一下 - 您应该使用重建的SRPM来保持安全。然而,最初的SRPM通常也会起作用。