== 務必使用一般帳號執行 rpmbuild ,以 root 執行有可能毀損系統 ==
安裝 rpmbuild
$ sudo yum install rpm-build
$ sudo yum install redhat-rpm-config
產生 rpmbuild 使用的目錄及檔案
$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
準備必要檔案
建置需要專案原始程式碼以及建置 spec 文件,或者使用已包裝好內含原始碼及 spec 的 SRPM 包。
可先嘗試以 yumdownloader 自 yum repo 下載 SRPM 包
$ yumdownloader --source <package>
若無法取得 SRPM ,則須下載專案原始程式碼置於 ~/rpmbuild/SOURCES
,並自行編寫 spec 文件置於 ~/rpmbuild/SPECS
。
安裝建置用相依套件
可使用 yum-builddep 安裝建置需要的相依套件
$ sudo yum-builddep <srpm>
$ sudo yum-builddep <specfile>
如果要在 x86_64 環境安裝 i686 的相依套件,則建議使用
$ sudo yum-builddep --target=i686 -x *.x86_64 <srpm>
$ sudo yum-builddep --target=i686 -x *.x86_64 <specfile>
以避免部份 spec 文件未在相依套件名稱後端加上 %{?_isa}
建置 RPM
使用 SRPM 包時
$ rpmbuild --rebuild <srpm>
使用專案原始檔及 spec 文件時
$ rpmbuild -bb <specfile>
若建置過程中沒有編譯錯誤,可以在 ~/rpmbuild/RPMS
目錄下看到建置完成的 rpm 檔案。
在 x86_64 環境建置 i686 rpm 時
$ rpmbuild --target=i686 -rebuild <srpm>
$ rpmbuild --target=i686 -bb <specfile>
spec 檔案通常也需要對應 i686 做必要的修正
安裝、查詢與移除 RPM
安裝
$ sudo rpm -ivh <package>.rpm
安裝到指定的位置
$ sudo rpm --prefix=<path> -ivh <package>.rpm
移除
$ sudo rpm -e <package>
查詢已安裝套件
$ sudo rpm -qa '<package>' (package 可包含 wildcard)
使用 yum 並同時安裝相依套件
$ sudo yum --nogpgcheck localinstall <package>