spec 語法

%prep 預處理腳本

  1. 預處理腳本,這個段是預處理段,通常用來執行一些解開源程序包的命令,爲下一步的編譯安裝作準備。
  2. %prep和下面的%build,%install段一樣,可以執行RPM所定義的宏命令(以%開頭)
  3. 還可以執行SHELL命令,命令可以有很多行,如我們常寫的tar解包命令。

%setup

  1. 宏解壓源代碼
  2. /usr/bin/gzip -dc xxxx.tgz # 把源碼包解壓並放好
  3. /usr/bin/tar -xf -
  4. 通常是從/usr/src/asianux/SOURCES裏的包解壓到/usr/src/asianux/BUILD/%{name}-%{version}中

2. 參數

  1. %setup 不加任何選項,僅將軟件包打開
  2. -q:q 參數給 %setup 宏。這會顯著減少編譯日誌文件的輸出,尤其是源代碼包會解壓出一堆文件的時候, 在安靜模式下且最少輸出
  3. -c:%setup -c 解壓縮之前先產生目錄
  4. -n:同時編譯多個源碼包,源碼的tar包的名稱與解壓出來的目錄不一致,此時,就需要使用-n參數指定一下例如:%setup -n newdir 將軟件包解壓到newdir目錄
  5. -D:#在解壓之前禁止刪除目錄
  6. -T:不使用default的解壓縮操作。
  7. -b:%setup -b num 將第num個source文件解壓縮
  8. %setup -q -n %{name}-%{version}:靜默模式下 指定解壓到新目錄,名爲%{name}-%{version}

%build 開始構建包

  1. 在/usr/src/asianux/BUILD/%{name}-%{version}目錄中進行mark的工作
  2. 定義編譯軟件包所要執行的命令, 這一節一般由多個make命令組成。
  3. 這些命令可以是 shell 命令,也可以是宏。
  4. 開始編譯源碼構建包,相當於configure以及make部分

%install 開始把軟件安裝到虛擬的根目錄中

  1. /usr/src/asianux/BUILD/%{name}-%{version}目錄中進行make install的操作,路徑不對的話,則下面%file中尋找文件的時候就會失敗
  2. 常見內容
    1. %makeinstall:make DESTDIR=$RPM_BUILD_ROOT install
  3. %install主要就是爲了後面的%file服務的

%post rpm安裝後執行的腳本

%preun rpm卸載前執行的腳本

%postun rpm卸載後執行的腳本

%preun %postun 的區別是什麼呢?
前者在升級的時候會執行,後者在升級rpm包的時候不會執行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章