安裝與編譯來源套件

所有來源套件均帶有副檔名 .src.rpm (來源 RPM)。

[Tip]

來源套件可從安裝媒體複製到硬碟,並用 YaST 解壓縮。但是,在套件管理員中,它們不會被標示為已安裝 ([i])。這是因為來源套件沒有輸入 RPM 資料庫中。只有已安裝的作業系統軟體會列在 RPM 資料庫中。您在「安裝」來源套件時,僅會將原始程式碼新增到系統中。

/usr/src/packages 中必須可以找到 rpmrpmbuild 的下列目錄 (除非您在如 /etc/rpmrc 的檔案中指定自定設定):

SOURCES

用於原始來源 (.tar.bz2.tar.gz 檔案等) 和配送特定調整 (大部份是 .diff.patch 檔案)

SPECS

用於 .spec 檔案,和中繼 Makefile 相似,可控制 build 程序

BUILD

所有來源在此目錄中解壓縮、修補和編譯

RPMS

儲存完整二進位套件的地方

SRPMS

此處為來源 RPM

當您使用 YaST 安裝來源套件時,所有需要的元件都會安裝在 /usr/src/packages 中︰SOURCES 中的來源和調整以及 SPECS 中的相關 .spec

[Warning]

請勿試驗系統元件 (glibcrpmsysvinit 等),因為這樣會危害系統的操作性。

以下範例使用 wget.src.rpm 套件。在使用 YaST 安裝套件之後,應該有類似下列清單的檔案:

/usr/src/packages/SOURCES/nops_doc.diff
/usr/src/packages/SOURCES/toplev_destdir.diff
/usr/src/packages/SOURCES/wget-1.9.1+ipvmisc.patch
/usr/src/packages/SOURCES/wget-1.9.1-brokentime.patch
/usr/src/packages/SOURCES/wget-1.9.1-passive_ftp.diff
/usr/src/packages/SOURCES/wget-LFS-20040909.tar.bz2
/usr/src/packages/SOURCES/wget-wrong_charset.patch
/usr/src/packages/SPECS/wget.spec

rpmbuild -b X /usr/src/packages/SPECS/wget.spec 可開始編譯。X 代表建立程序各種階段的萬用字元 (請參閱 --help 的輸出或 RPM 文件以取得詳細資訊)。以下僅為簡略的說明:

-bp

/usr/src/packages/BUILD 中準備來源︰解壓縮和修補。

-bc

執行與 -bp 相同動作,但是會額外編譯。

-bi

執行與 -bp 相同的動作,但是會額外安裝建立的軟體。警告︰如果套件不支援 BuildRoot 功能,您可能會覆寫組態檔。

-bb

執行與 -bi 相同的動作,但是會額外建立二進位套件。如果編譯成功,二進位應該在 /usr/src/packages/RPMS

-ba

執行與 -bb 相同的動作,但是會額外建立來源 RPM。如果編譯成功,二進位應該在 /usr/src/packages/SRPMS

--short-circuit

略過部分步驟。

現在可使用 rpm -i (最好使用 rpm -U) 來安裝所建立的二進位 RPM。使用 rpm 來安裝會讓它出現在 RPM 資料庫中。