2010年5月12日星期三

RPM Packager 學習(2)

1.先總結一下rpmbuild的目錄:
BUILD rpmbuild命令在這個目錄中建立軟件
RPMS rpmbuild 命令把她創建的二進制包放在此處
SOURCES 應用程序源代碼
SPECS .spec文件
SRPMS .src.rpm

------------------------------------------------------------

2.spec文件

Emacs果然強大,自動生成了不少東西,一一做筆記
Name: 軟件名
Version: 版本號
Release: 軟件包的版本號
Summary: 軟件摘要
Packager: 打包員名號
Group: Linux應用軟件的分類
License: guess what
URL:
Source0: 包的名字
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
定義一個用於測試安裝的目錄,定義好Buildroot後,就可以通過使用變量$RPM_BUILD_ROOT將應用軟件安裝到Buildroot定義的目錄下,
BuildRequires:
Requires:
兩種依賴包,編譯依賴和運行的依賴
%description
對軟件描述,可以持續多行。
下面主要分為4部分,%prep,%build,%configure,%install
%prep
%setup -q
準備工作,一般用%setup就可以了。

%build
%configure 相當於./configure
make %{?_smp_mflags}
絕大多數情況用make就可以了,編譯libfetion時我先用了qmake-qt4。

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
可以使用%makeinstall安裝程序,也可以根據所用軟件帶的install.sh腳本來自己寫。

%clean
rm -rf $RPM_BUILD_ROOT


%files 定義了需要包括進軟件包的所有文件,要求非常嚴格
%defattr(-,root,root,-)
%doc
%{_bindir}被擴展為當前二進制目錄
%{_mandir}使用手冊
%{_datadir}數據(包括圖片等)

%changelog 如名日誌
* Sat May 08 2010 freakrobot
-Initial libfetion package

------------------------------------------------------------

3.最後是rpmbuild的參數使用:
-ba 同時建立二進制軟件包和源代碼軟件包
-bb 只建立二進制軟件包
-bc 只編譯不製作rpm包
-bp 為建立rpm包做準備
-bi 創建二進制軟件包並安裝
-bl 檢查RPM包的文件列表
-bs 只建立源代碼包

没有评论:

发表评论