rpmbuild - 構建 RPM 打包


SYNOPSIS

構建打包:

 

 

rpmbuild {-ba|-bb|-bp|-bc|-bi|-bl|-bs} [rpmbuild-options] SPECFILE ...

 

 

rpmbuild {-ta|-tb|-tp|-tc|-ti|-tl|-ts} [rpmbuild-options] TARBALL ...

 

 

rpmbuild {--rebuild|--recompile} SOURCEPKG ...

 

其他:

 

 

rpmbuild --showrc

 

rpmbuild 選項

 

 


[--buildroot DIRECTORY] [--clean] [--nobuild]
[--rmsource] [--rmspec] [--short-circuit] [--sign]
[--target PLATFORM]

 

DESCRIPTION

rpmbuild 是用來構建軟件的二進制和源代碼打包的。一個軟件包 package 包括文件的歸檔以及用來安裝和卸載歸檔中文件的元數據。元數據包括輔助腳本,文件屬性,以及有關的描述性的信息。軟件包有兩種 package:二進制軟件包,用來封裝要安裝的軟件,源代碼軟件包,包含了源代碼和要構建二進制打包需要的內容。

必須選擇下列基本模式之一:0 Build Package, Build Package from Tarball, Recompile Package, Show Configuration.

一般的選項

這些選項可以用於所有不同的模式。

-?, --help
輸出較長的幫助信息
--version
輸出一行信息,包含 rpmbuild 的版本號
--quiet
輸出盡可能少的信息 - 通常只有錯誤信息才會顯示出來
-v
輸出冗余信息 - 通常常規的進度信息都將被顯示
-vv
輸出大量丑陋的調試信息
--rcfile FILELIST
FILELIST 中冒號分隔的每個文件名都被 rpm 按順序讀取,從中獲得配置信息。只有列表的第一個文件必須存在,波浪線將被替換為 $HOME。默認的 FILELIST/usr/lib/rpm/rpmrc: /usr/lib/rpm/redhat/rpmrc: /etc/rpmrc: ~/.rpmrc
--pipe CMD
rpm 的輸出通過管道送到命令 CMD
--dbpath DIRECTORY
使用 DIRECTORY 中的數據庫,而不是默認的路徑 /var/lib/rpm
--root DIRECTORY
DIRECTORY 作為根文件系統,進行所有操作。這意味着將使用 DIRECTORY 中的數據庫來進行依賴性檢測,任何小程序 (也就是安裝中的 %post 和構建中的 %prep) 都將在一個 chroot(2) 到 DIRECTORY 之后執行。

構建選項

構建命令的一般形式是

 

rpmbuild -bSTAGE|-tSTAGE [ rpmbuild-options ] FILE ...

 

如果要用某個 spec 文件構建,使用 -b 參數。如果需要根據一個可能是壓縮過的 tar 歸檔文件中的 spec 文件構建,就使用 -t 參數。第一個參數之后的字符 STAGE 指定了要完成的構建和打包的階段,是下列其中之一:

-ba
構建二進制和源代碼打包 (在執行 %prep, %build 和 %install 之后)
-bb
構建二進制打包 (在執行 %prep, %build 和 %install 之后)
-bp
執行 spec 文件的 "%prep" 階段。通常,這會解包源代碼並應用補丁
-bc
執行 spec 文件的 "%build" 階段 (在執行了 %prep 階段之后)。這通常等價於執行了一次 "make"
-bi
執行 spec 文件的 "%install" 階段 (在執行了 %prep 和 %build 階段之后)。這通常等價於執行了一次 "make install"
-bl
執行一次 "列表檢查"。spec 文件的 "%files" 段落中的宏被擴展,檢測是否每個文件都存在。
-bs
只構建源代碼打包

還可以用下列選項:

--buildroot DIRECTORY
在構建時,使用目錄 DIRECTORY 覆蓋默認的值
--clean
在制作打包之后刪除構建樹
--nobuild
不執行任何構建步驟。用於測試 spec 文件
--rmsource
在構建后刪除源代碼 (也可以單獨使用,例如 " rpmbuild --rmsource foo.spec")
--rmspec
在構建之后刪除 spec 文件 (也可以單獨使用,例如 " rpmbuild --rmspec foo.spec")
--short-circuit
直接跳到指定階段 (也就是說,跳過指定階段前面的所有步驟)。只有與 -bc-bi 連用才有意義。
--sign
在打包中包含 GPG 簽名。簽名可以用來校驗打包的完整性和來源。參見 rpm(8) 的 "GPG 簽名" 章節中的配置細節。
--target PLATFORM
在構建時,將 PLATFORM 解析為 arch-vendor-os,並以此設置宏 %_target, %_target_cpu, 和 %_target_os 的值。

重建和重編譯選項

還有兩種發起構建的方法:

 

rpmbuild --rebuild|--recompile SOURCEPKG ...

 

這樣執行的話,rpmbuild 安裝指定的源代碼打包,然后進行准備,編譯和安裝。另外,--rebuild 構建一個新的二進制打包,在構建結束時,構建目錄被刪除 (就好像用了 --clean),源代碼和 spec 文件也被刪除。

SHOWRC

命令

 

rpmbuild --showrc

 

將顯示 rpmbuild 使用的,在 rpmrcmacros 配置文件中定義的選項的值。

FILES

rpmrc 配置文件

 

/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
/etc/rpmrc
~/.rpmrc

Macro 宏定義文件

 

/usr/lib/rpm/macros
/usr/lib/rpm/redhat/macros
/etc/rpm/macros
~/.rpmmacros

Database 數據庫

 

/var/lib/rpm/Basenames
/var/lib/rpm/Conflictname
/var/lib/rpm/Dirnames
/var/lib/rpm/Filemd5s
/var/lib/rpm/Group
/var/lib/rpm/Installtid
/var/lib/rpm/Name
/var/lib/rpm/Packages
/var/lib/rpm/Providename
/var/lib/rpm/Provideversion
/var/lib/rpm/Pubkeys
/var/lib/rpm/Removed
/var/lib/rpm/Requirename
/var/lib/rpm/Requireversion
/var/lib/rpm/Sha1header
/var/lib/rpm/Sigmd5
/var/lib/rpm/Triggername

Temporary 臨時文件

/var/tmp/rpm*


免責聲明!

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



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