歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> CentOS RPM包制作原理

CentOS RPM包制作原理

日期:2017/2/28 14:37:41   编辑:Linux教程

有時候為了部署自己的包更方便一些,我們會制作自己的RPM包,制作RPM包都有哪些步驟呢,學習這些步驟就是本文的目的。在CentOS下制作RPM包依賴rpm-build這個包,所以需要提前安裝好該軟件包。

RPM生成要素

  1. 生成rpm所用的文件列表或者源代碼
  2. 根據文件列表或者源代碼生成rpm規范,也就是spec文件
  3. 根據spec文件加工源碼/文件的工具rpmbuild

在RedHat下,rpm包的默認制作路徑在/usr/src/redhat下:

/usr/src/redhat
--BUILD #編譯之前,如解壓包後存放的路徑
--BUILDROOT #編譯後存放的路徑
--RPMS #打包完成後rpm包存放的路徑
--SOURCES #源包所放置的路徑
--SPECS #spec文檔放置的路徑
--SPRMS #源碼rpm包放置的路徑

centos並沒有該目錄,這可咋辦,其實在那個目錄制作rpm是沒有關系的,只要設置好配置文件就行。一般我們都把源碼打包成tar.gz格式然後存放於SOURCES路徑下,而在SPECS路徑下編寫spec文檔,通過命令打包後,默認會把打包後的rpm包放在RPMS下,而源碼包會被放置在SRPMS下。

先看看rpmbuild命令的用法:

1 從spec文檔建立有以下選項:

-bp #只執行spec的%pre 段(解開源碼包並打補丁,即只做准備)
-bc #執行spec的%pre和%build 段(准備並編譯)
-bi #執行spec中%pre,%build與%install(准備,編譯並安裝)
-bl #檢查spec中的%file段(查看文件是否齊全)
-ba #建立源碼與二進制包(常用)
-bb #只建立二進制包(常用)
-bs #只建立源碼包

2 從tarball包建立,與spec類似

-tp #對應-bp
-tc #對應-bc
-ti #對應-bi
-ta #對應-ba
-tb #對應-bb
-ts #對應-bs

3 從源碼包建立

--rebuild #建立二進制包,通-bb
--recompile #同-bi

* rpmbuild的其他參數

--buildroot=DIRECTORY #確定以root目錄建立包
--clean #完成打包後清除BUILD下的文件目錄
--nobuild #不進行%build的階段
--nodeps #不檢查建立包時的關聯文件
--nodirtokens
--rmsource #完成打包後清除SOURCES
--rmspec #完成打包後清除SPEC
--short-cricuit
--target=CPU-VENDOR-OS #確定包的最終使用平台

Copyright © Linux教程網 All Rights Reserved