rpmbuild之后二进制文件的MD5不一样

使用rpmbuild工具用如下命令,生成rpm包.

rpmbuild -bb qatengine.spec

我们知道,rpmbuild的目录里,一部分是用来build的,一部分使用release的, 我们分别找到我们感兴趣的二进制文件,算一下md5,

发现,竟然不一样:

[root@T9 SPECS]# sha256sum ../BUILD/QAT_Engine-0.5.46/.libs/libqat.so.0.0.0 
b83a548e400f0202c7a1ecceb3b803a1cf47e699a08d31a1136b782fce79fa55  ../BUILD/QAT_Engine-0.5.46/.libs/libqat.so.0.0.0

[root@T9 SPECS]# sha256sum ../BUILDROOT/qatengine-0.5.46-1.el7.x86_64/opt/openssl/lib/libqat.so.0.0.0 
0e4b07888256bb86ca1315af6f895498388069b92162dbad20435c47ecf3fa33  ../BUILDROOT/qatengine-0.5.46-1.el7.x86_64/opt/openssl/lib/libqat.so.0.0.0
[root@T9 SPECS]# sha256sum ../BUILDROOT/qatengine-0.5.46-1.el7.x86_64/opt/openssl/lib/engines-1.1/qat.so 
087dc50033fcdef9fdb6383aa9d7abca6d70a7699051ebc37024efa7a13c2250  ../BUILDROOT/qatengine-0.5.46-1.el7.x86_64/opt/openssl/lib/engines-1.1/qat.so

后两个应该都是前一个copy过去的.

经分析,原来是因为strip了.

可以这样, 在spec文件中关掉strip:

%global _enable_debug_package 0
%global debug_package %{nil}
%global __os_install_post /usr/lib/rpm/brp-compress %{nil}
To prevent stripping you may also need to do this in the %install section:
export DONT_STRIP=1
http://lists.rpm.org/pipermail/rpm-list/2013-August/001478.html

试了一下,不好使.

官方文档里也没写,好像没这个需求: https://rpm-packaging-guide.github.io/#built-in-macros

看来没有官方开关disable, 一定要做的话,只能自己hook了.

也许知道为什么不一样, 也就够了吧.

原文地址:https://www.cnblogs.com/hugetong/p/13921166.html