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 使用的,在 rpmrc 和 macros 配置文件中定義的選項的值。
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*