在我正在从事的项目中,我需要使用私钥从输出可执行文件(elf)之一生成签名(签名形成了rpm中的文件之一,执行此操作的私钥永远不会离开构建机器)。当前,这是在rpm系统之外,作为“ make”,“ make install”过程的一部分在我的makefile中完成的。
但是,似乎比使用rpmbuild从中生成rpm时,在%build和%install之后的某个时刻,它正在进一步修改我的可执行文件(似乎出于某种原因正在从.strtab和.symtab中删除内容)。这意味着稍后安装rpm之后,由于可执行文件的更改,我与之集成的其他软件拒绝了我的签名数据...
有什么方法可以阻止rpmbuild修改我的文件,或者至少有某种方法可以将我的%build和%install的一部分进行任何此类更改(以便我可以重新创建签名文件)。
如果您禁用-debuginfo
软件包构建,我相信RPM将停止剥离软件包中的二进制文件。
您可以通过将%debug_package
宏设置为来实现%{nil}
。
在rpmmacros文件中($HOME/.rpmmacros
我相信默认情况下会搜索到该文件),以下行应执行此操作。
%debug_package %{nil}
也可以在命令行上执行此操作,-D'debug_package %{nil}'
但我尚未对此进行测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句