ceph叢集 Centos7下RPM包製作說明
Centos RPM包製作說明
準備打包環境
1、centos系統下使用如下命令安裝rpmbuild
#yum install rpmbuild
2、rpmbuild的工作目錄如下,
~/rpmbuild
~/rpmbuild/SOURCES
~/rpmbuild/SPECS
~/rpmbuild/BUILD
~/rpmbuild/RPMS
~/rpmbuild/SRPMS
3、如果你的使用者目錄主目錄下沒有類似目錄結構,你可以通過一個工具軟體來自動配置和生成,如下:
#yum install rpmdevtools
下了執行自動配置命令自動生成如上目錄,並配置一些必要操作。
#
rpmdev-setuptree命令預設將再當前使用者主目錄下建立一個RPM構建根目錄結構,
說明:如果需要改變次預設位置,可以修改配置檔案:~/.rpmmacros中變數_topdir對應的值即可。
一般rpmbuild會在當前使用者的主目錄下自動建立如上目錄結構,如果在你對應使用者的構建目錄中沒有自動建立如上目錄,你可以通過手動方式建立。上面目錄的使用是這樣分配的,SOURCES放置打包資源,包括原始碼打包檔案和補丁檔案等;SPECS目錄放置SPEC文件;BUILD打包過程中的工作目錄;RPMS目錄存放生成的二進位制包,RPM包根據硬體平臺不同分類,i386
製作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指定檔案為幫助文件