RPM包裝。 第2部分:SPEC文件理論

RPM的魔力在於 所有構建軟件包的說明都包含在單個SPEC文件中。 當然,首先您必須了解它,有時這並不容易...

什麼是SPEC文件?

基本上,它是指示如何構建,安裝和卸載軟件包的文件。

我們將為您提供的說明分為多個階段,這些階段又是宏。 這些是基本階段:

  1. 準備百分比:未壓縮源並應用了補丁。
  2. 建造百分比:二進製文件已編譯。
  3. %檢查:確認已正確編譯。
  4. 安裝百分比:進行安裝練習。
  5. %個文件:列出將出現在軟件包中的所有文件。 它還常用於分配屬性。 如果有任何未列出的文件,則不會生成。

一些SPEC可能沒有某些階段。 它們不是強制性的.

還有其他階段稱為 腳本。 它們之所以特別,是因為它們在構建軟件包時不執行,而是在安裝或卸載時執行。 您甚至可以安排觸發器在安裝另一個軟件包時運行。 這是RPM優於DEB文件的最大優勢之一。

RPM最大的麻煩在於 一切都具有相同的語法。 也就是說,所有這些特殊字詞前都有一個百分號(%)是RPM宏,但是有各種宏:

  • 功能(%設置,%配置,%補丁…)
  • 預定義變量(%_bindir,%dist…)
  • 在SPEC本身中定義的變量(%buildroot,%name,%version ...)
  • 靜態部分(%說明,%更新日誌…)
  • 階段(%生成,%安裝...)
  • 觸發器(%triggerin,%triggerpostun…)
  • 腳本(%pretrans,%postun…)

要知道如何使用某個宏,唯一的方法是 查閱文檔。 好吧,實際上您總是可以使用其他技巧,例如 看看SPEC是如何由與您類似的包裝製成的,或嘗試和錯誤方法。 一對 實用命令:

rpmbuild --showrc#顯示所有宏
rpmbuild --eval =“%macro_name”#顯示擴展的宏

如果宏周圍有括號,則它們是相同的。 如果括號後面有問號,則沒有任何可擴展的地方,它將為空白。 例如, 1%{?Dist} 將擴展到 1.FC16 在Fedora 16上,但在另一個發行版上 1.

宏甚至在註釋中擴展。 為防止其擴散,請連續使用兩個百分比。 例如, %% 設定 將作為 % 建立 實際上是通過擴展。

胃口大開

我們已經在本教程的第二部分中了,您仍然不知道我們將打包什麼,因此下面的視頻讓您大開眼界:

我們要打包的遊戲是 高度上癮。 我建議您不要完成本教程,以防您浪費了數小時來玩這個遊戲而沒有時間...

<<閱讀RPM打包教學的第一部分


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。