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 <marion@magedu.com>
%_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 <marion@magedu.com> 2.7-1
- Initial version of the package
4、上述工作完成后,准备工作已经就绪,接下来就可以使用如下命令制作二进制的rpm包和src格式的rpm包了:
# rpmbuild -ba hello.spec
制作完成的二进制格式的rpm包位于RPMS目录中,src格式的rpm包位于SRPMS目录中。
5、接下来可以以root用户尝试安装刚刚制作成功的rpm包了。