使用rpmbuild打包時不對文件進行strip操作


摘自: https://www.ichenfu.com/2017/11/20/rpmbuild-not-strip/

By 

 

文章目錄

默認情況下,在使用rpmbuild打包時,會對安裝的所有文件進行strip操作,去除文件的一些調試信息,並將這些調試信息放到debuginfo包中,但在很多時候,我們並不需要rpmbuild幫我們執行strip,也不需要生成debuginfo包,所以我們可以修改一下spec文件,關閉這些選項。

針對文件的strip操作是在__os_install_post這個宏中定義的,我們可以運行一下rpmbuild --showrc看一下原始的__os_install_post做了哪些操作:

1
2
3
4
5
6
7
8
9
10
...
-14: __os_install_post
/usr/lib/rpm/redhat/brp-compress
%{!?__debug_package:/usr/lib/rpm/redhat/brp-strip %{__strip}}
/usr/lib/rpm/redhat/brp-strip-static-archive %{__strip}
/usr/lib/rpm/redhat/brp-strip-comment-note %{__strip} %{__objdump}
/usr/lib/rpm/brp-python-bytecompile
/usr/lib/rpm/redhat/brp-python-hardlink
%{!?__jar_repack:/usr/lib/rpm/redhat/brp-java-repack-jars}
...

可以看到在打包時會對文件進行一系列操作,比如壓縮,strip,編譯Python腳本等,所以,我們只需要在spec文件中,加上%define __os_install_post %{nil},將__os_install_post設置為空,這樣在打包的時候,就不會執行上面的這些操作了,也就不會對文件進行strip操作了。同樣的,如果不需要生成debuginfo包,只需要再加上%define debug_package %{nil}就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM