我正在制作共享库的rpm。在.spec文件中,我在%install部分编写正常的安装命令,制作一些软链接,在%post和%postun上运行ldconfig。我不是在rpm中构建库,因为我已经编译并剥离了库。但是当我在使用rpm安装我的共享库之前看到库的文件大小(在我的开发文件夹中)时,它会发生24k,当我在/ usr / lib64 /上看到我的共享库的部署文件时,大小是大约23.8k,因为部署之前和部署之后的库的哈希不匹配(我现在需要匹配)。可能有什么问题?
任何帮助都将不胜感激。
编辑:我有两个库文件的统计信息。部署之前的共享库文件比通过rpm部署后的文件多8个块。
答案 0 :(得分:4)
导致变化的原因有多种可能性......
第一个是RPM可能正在剥离一些符号 - 如果内部函数的符号没有导出,那么它可能会选择剥离它们。
它也可能是从文件中删除各种ELF部分,因为RPM通常会尝试将任何调试信息提取到单独的文件中,然后将这些文件放在单独的debuginfo包中。即使您在库中没有任何实际的调试信息,它仍然可能有空的调试部分,这些部分将被此过程删除。
了解更改内容的最佳方法是使用readelf
探索库的两个版本,并查看部分列表(由readelf -S
报告)或符号(由{{报告) 1}})已经改变了。