centos下rpm包的制作
摘要:
RPM(Red Hat Package Manager)是用于 Linux 分发版(distribution)的最常见的软件包管理器。因为它允许分发已编译的软件,所以用户只用一个命令就可以安装软件。RPM 是 Linux“标准基本库”版本 1.0.0 指定的安装工具。在 Linux 分发版前 10 名中,有 8 个是基于 RPM(请参阅“Comparison of Linux Distributions”)。即使某些通常不使用 RPM 的分发版,如 Debian,也有可用工具将 RPM 转换成它们自己的格式。在 Linux 上,对于除开发人员以外的任何人,RPM 也是用来打包软件的最佳选择。本文通过一个简单的hello word程序,介绍rpm软件包的制作原理。
本文来源:http://blog.csdn.net/trochiluses/article/details/11179901
1.简单实例:在这篇博文中,我们使用一个简单的“hello world”来说明问题,其中我们的源文件包括hello.c,configure,makefile,内容大致如下:
hello.c
%prep#rm -rf %{_builddir}/hello-1.0mkdir -p %{buildroot}echo buildroot: %{buildroot}#tar -xvf %{_sourcedir}/hello-1.0.tar.gz%setup -q%build#cd %{_builddir}/hello-1.0#./configure --prefix=/home/huangyukun/usr/local/hellomake#%configure#make %{?_smp_mflags}%install#cd %{_builddir}/hello-1.0make install DESTDIR=%{buildroot}
注意:最主要的变化是将install的路径变化了,包制作完成后会自动删除这个目录之下的文件。
如果您在使用不同的 Linux 分发版,RPM 可能会有不同的内置路径。要确定希望的 RPM 安装路径,请运行 rpm --showrc 并查看下列部分如何被定义:
- _sourcedirRPM 在哪里查找源文件(tar 文件,等)
- _srcrpmdirRPM 在哪里放入新的源 RPM 文件
- _rpmdirRPM 将把新的二进制 RPM 文件放在哪里(在特定于体系结构的子目录中)
- _srcrpmdirRPM 在哪里放入新的源 RPM 文件
其中一些根据其它变量定义;例如,当您看到 %{_topdir} ,查找 _topdir 的定义,等等。
另外,一些变量和宏的定义可以在以下文件中找到:rpmrc Configuration
/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
/etc/rpmrc
~/.rpmrc
Macro Configuration
/usr/lib/rpm/macros
/usr/lib/rpm/redhat/macros
/etc/rpm/macros
~/.rpmmacros
外部参考:
【1】http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part1/index.html
【2】http://blog.chinaunix.net/uid-21123336-id-1830527.html
【3】http://bbs.voip88.com/home.php?mod=space&uid=1&do=blog&id=727