以GNU的hello爲例演示製作rpm包的方法

http://blog.chinaunix.net/uid-233544-id-3069806.html

本文的演示示例中用到的系統平臺是RHEL5.4。

製作rpm包需要用到開發發工具,這裏可以通過基於yum安裝"Development Tools"和"Development Libraries"兩個開發組來進行安裝。同時,本文只是一個製作示例,以GNU的hello來演示製作過程。

1、製作rpm包要以普通用戶的身份進行,因此,這裏先新一個用戶marion,以之作爲製作rpm包的用戶。

# useradd marion
# passwd marion

2、以marion用戶的身份登錄系統

首先創建文件.rpmmacros,定義製作rpm包時的工作目錄等需要的宏,內容如下:

%packager       Marion <[email protected]>
 
%_topdir        /home/marion/rpmworkshop
%_tmppath       /var/tmp

%_rpmtopdir     %{_topdir}
%_builddir      %{_rpmtopdir}/BUILD
%_rpmdir        %{_rpmtopdir}/RPMS
%_sourcedir     %{_rpmtopdir}/SOURCES
%_specdir       %{_rpmtopdir}/SPECS
%_srcrpmdir     %{_rpmtopdir}/SRPMS


接着創建/home/marion/rpmworkshop目錄,這是製作rpm包的工作目錄,裏面包含RPMS,SPECS,BUILD,SOURCES和SRPMS幾個子目錄:

# mkdir -pv ~/rpmworkshop/{BUILD,RPMS,SRPMS,SOURCES,SPECS}

3、開始製作rpm包

先去http://ftp.gnu.org/gnu/hello/下載hello目前最新版本的原碼包,並將其放置於/home/marion/rpmworkshop/SOURCES目錄中。

而後,於SPECS目錄中創建hello.spec文件,內容如下:
Name:           hello
Version:        2.7 
Release:        1%{?dist}
Summary:        The GNU Hello distribution. 

License:        GPLv3+
URL:            http://ftp.gnu.org/gnu/%{name}
# Source0:        http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz

BuildRequires: gettext
# Requires:       
Requires(post): info
Requires(preun): info

Group: System Environment/Libraries

Buildroot: /tmp/hellorpm

%description 
This is the GNU Hello distribution.Hello prints a friendly greeting.
It also serves as a sample GNU package, showing practices that may 
be useful for GNU projects.


%prep
%setup -q

%build
%configure
make %{?_smp_mflags}

%install

make install-strip DESTDIR=%{buildroot}
%find_lang %{name}
rm -f %{buildroot}/%{_infodir}/dir

%post
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :

%preun
if [ $1 = 0 ] ; then
/sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || :
fi

%files -f %{name}.lang
%{_bindir}/hello
%doc %{_mandir}/man1/hello.1.gz
%doc %{_infodir}/%{name}.info.gz

%changelog
* Fri Feb 10 2012 Marion <[email protected]> 2.7-1
- Initial version of the package


4、上述工作完成後,準備工作已經就緒,接下來就可以使用如下命令製作二進制的rpm包和src格式的rpm包了:
# rpmbuild -ba hello.spec

製作完成的二進制格式的rpm包位於RPMS目錄中,src格式的rpm包位於SRPMS目錄中。

5、接下來可以以root用戶嘗試安裝剛剛製作成功的rpm包了。

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