1. 程式人生 > >ceph叢集 Centos7下RPM包製作說明

ceph叢集 Centos7下RPM包製作說明



Centos RPM包製作說明

準備打包環境

1centos系統下使用如下命令安裝rpmbuild

#yum install rpmbuild

2rpmbuild的工作目錄如下,

~/rpmbuild

~/rpmbuild/SOURCES

~/rpmbuild/SPECS

~/rpmbuild/BUILD

~/rpmbuild/RPMS

~/rpmbuild/SRPMS

3、如果你的使用者目錄主目錄下沒有類似目錄結構,你可以通過一個工具軟體來自動配置和生成,如下:

yum install rpmdevtools

下了執行自動配置命令自動生成如上目錄,並配置一些必要操作。

rpmdev-setuptree

rpmdev-setuptree命令預設將再當前使用者主目錄下建立一個RPM構建根目錄結構,

說明:如果需要改變次預設位置,可以修改配置檔案:~/.rpmmacros中變數_topdir對應的值即可

一般rpmbuild會在當前使用者的主目錄下自動建立如上目錄結構,如果在你對應使用者的構建目錄中沒有自動建立如上目錄,你可以通過手動方式建立。上面目錄的使用是這樣分配的,SOURCES放置打包資源,包括原始碼打包檔案和補丁檔案等;SPECS目錄放置SPEC文件;BUILD打包過程中的工作目錄;RPMS目錄存放生成的二進位制包,RPM包根據硬體平臺不同分類,i386

表示生成i386結構的包將存放在該目錄下;SRPMS目錄存放生成的原始碼包。

製作rpm包:

1、把對應的原始碼進行tar包製作,然後拷貝到~/rpmbuild/SOURCES目錄下。

2、把spec檔案拷貝到~/rpmbuild/SPECS

3、在~/rpmbuild/SPECS下執行rpmbuild –ba *.spec ,如果沒有Error則會在目錄~/rpmbuild/RPMS下生成所需要的rpm

注:

1.1)如果出現依賴錯誤,直接安裝需要的包就可以

1.2)關於原始碼包tar包的名字需要根據spec檔案進行命名

關於spec檔案解釋如下

  • Name軟體名稱

  • Version

    軟體版本

  • Release軟體分支

  • Summary一句話介紹

  • Group軟體所屬組

  • License軟體產權

  • URL軟體主頁

  • Source原始碼位置

  • PatchPatch位置

  • BuildArch編譯架構

  • BuildRoot安裝目錄,重要

  • BuildRequires編譯依賴包

  • Requires安裝依賴包

  • %description詳細的介紹資訊

  • %define用來定義和修改macro變數,macro變數用%{macro}來引用

安裝前處理%prep

  • %setup便捷的解壓macro

  • %patch便捷的打patch工具

編譯處理%build

  • %build通常是./configure && make

測試處理%check

  • %check通常是make test

安裝階段%install

  • %install特別注意這個階段是將編譯好的軟體安裝到\$BUILDROOT下,通常是make DESTDIR=%{buildroot} install

清理階段%clean

  • %clean主要程序一些安裝後的清理工作,比如清理BUILD目錄下的臨時檔案

檔案列表%file

  • 此段主要設定安裝到系統上的檔案和目錄的屬性,注意所有安裝到系統上的檔案都要在此段宣告,否則製作就不成功。

  • %defattr(,, , )用來定義預設屬性

  • %config(noreplace)用來制定配置,升級是不會被覆蓋

  • %attr(mode,user, group) 單獨指定屬性

  • %doc指定檔案為幫助文件

改動日誌%changelog

有特定格式來指定檔案變動資訊

指令碼段Scriptlets

%pre%post用於安裝前後指定的指令碼 %preun%postun用於解除安裝前後執行的指令碼 %pretrans%posttrans用於一個事務前後的操作

rpmbuild用法

編譯選項

-ba 構建二進位制和原始碼包 -bb 構建二進位制包 -bp 執行到%prep -bc 執行到%build -bi 執行到%install -bl 通過%file進行列表檢查 -bs 構建原始碼包 --sign 給軟體包簽名 --rebuild 編譯原始碼包並安裝 --showrc 檢視配置檔案內容

參考文獻: