用RPM打包软件入门
时间:2008-08-12 来源:aaronwong0207
1. 用RPM打包软件的概念:将软件打包为.rpm文件,以便使用rpm工具进行软件安装。
2. 如何用RPM打包软件?rpmbuild命令行工具。示例:
rpmbuild -bb -target i386--linux your_sw.spec
上述命令将按照your_sw.spec文件中指定的信息和规则,把相应的软件打包为RPM安装包。
3. 因此非常重要的一步是写.spec文件。Spec文件的内容主要包括:
(1) 头信息,例如:
Name: your_sw_name
Version: version_number
Release: 01
Summary: install xxxx RPM file
Group: xxxx corporate
License: xxxx corporate
Prefix: /
BuildRoot: %_tmppath
%_tmppath是 make install 时使用的“虚拟”根目录也称为“构建根”目录,它是内部定义的宏。类似的宏还有%_topdir, %_sourcedir, %_specdir等。
(2) 描述,从%description行开始,以提供该软件更多的描述,通过rpm –qi可查询软件包信息。
(3) Shell脚本,通过预定义的分节符,描述在rpm安装的不同阶段所要执行的shell命令。比较重要的节有:%prep, %build, %install, %clean, 以及%pre, %post, %preun, %postun等。使用上述rpmbuild命令时:
· 读取并解析 filename.spec 文件
· 运行 %prep 部分来将源代码解包到一个临时目录,并应用所有的补丁程序。
· 运行 %build 部分来编译代码。
· 运行 %install 部分将代码安装到构建机器的目录中。
· 读取 %files 部分的文件列表,收集文件并创建二进制和源 RPM 文件。
· 运行 %clean 部分来除去临时构建目录。
另外:
l %pre 在安装包之前运行
l %post 在安装包之后运行
l %preun 在卸载包之前运行
l %postun 在卸载包之后运行
(4) 文件列表,%files 列出应该捆绑到 RPM 中的文件,并能够可选地设置许可权和其它信息。可以用 %attr(permissions,user,group) 覆盖个别文件的所有者和许可权。例如,%attr(777,root,root) /your_sw。
http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part3/index.html
http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part2/index.html
http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part3/index.html