打包rpm包 – 制作RPM包

步骤:
1、#rpmbuild -bb zheng.spec
2、#rpm -ivh /usr/src/redhat/RPMS/i386/zheng-0.1-1.i386.rpm

例子:
[root@host34 ~]# cat zheng.spec
summary:add user zheng
Name:zheng
Version:0.1
Release:1
Vendor:huantv(Email:dudu_ting@yahoo.cn)
#Copyright:Share
lICENSE: Share
Group:Systen Environment/Base
Source:zheng.sh
%description

add user in ops
this rpm page is zheng
%prep

echo “预处理脚本程序(prep)开始执行”

#sudo /usr/sbin/groupadd -g 101000 -f zheng && sudo /usr/sbin/useradd -u 101000 -g 101000 -s ‘/bin/bash’ -c ” -m -p ‘$1$D8a4o4Cd$LwrSzKBeUqBf2CjlOtSms.’ – n zheng;

#zheng.sh文件中写的添加用户的内容

#pre start

%build
#build start

#cp /root/

%install
/root/zheng.sh
#install start

%files
%defattr (-,root,root)
%doc
#%config /etc/funkey.def
#%config /etc/inputm.def

#/usr/bin/zheng
#/usr/bin/zheng.py
#/usr/bin/zheng.wb
%changelog
参数解释:
1. Name :
此域定义软件名。
2. Version :
此域定义版本号。仅当软件较以前有较大改变时才增加版本号。注: 版本号中不能含减号(-)字符。
3. Release :
此域定义释出号。若软件较以前改变较小,则仅增加释出号,不改变版本号。注: 释出号中亦不能含减号(-)字符。
RPM利用上述的Name(软件名),Version(版本号),Release(释出号)及体系号来命名软件包,如本例输出的包裹文件名为lze-6.0-2.i386.rpm。
4. Summary :
此域定义软件包简介,为一句话说明。
5. Group :
此域定义软件所属类别,详见>,本例的Applications/Editors表示本软件属”应用/编辑器”类。
6. License :(以前的是用Copyright,现在一般不支持这个解释)
此域定义软件适用的许可证或版权规则。该域也可用Copyright(版权)来定义,二者同意。许可证具体有: GPL(通用公共许可证,自由软件适用),BSD,MIT,Public Domain(公共域),Distributable(贡献),Commercial(商业),Share(共享)等

必要功能解释:

1. %description
本段是描述段,段的内容是对软件包进行较为详细的介绍,不象文件头的Summary域仅用一句话说明。介绍的文本形式自由,可任意换行,不受限制。
2. %prep
此为预处理段,其内容为预处理脚本程序。该程序完成以下任务:
* 建立软件编译用目录;
* 将源程序解压缩;
* 通过打补丁,升级源程序;
* 执行其它一些操作,使源程序随时可进行编译。
3. %build
编译连接脚本程序(build)开始执行
4. %install
安装脚本程序(install)开始执行
5. %files本段是文件段,它定义的是软件包需要包含哪些文件。本段通常放在描述文件尾部,以便于添加文件名,便于编辑。
6. %defattr (-,root,root)
%defattr(权限,属主,属组)
其中: 权限,属主和属组都可以使用减号(-)。使用减号的属性将由系统设定。
例如: %defattr(022,zzz,zhsoft) 设定其后的所有文件权限为022,属主为zzz,属组为zhsoft;又如: %defattr(-,zzz,-) 则是设定其后的所有文件属主为zzz,权限与属组由系统设置。
7. %doc
此修饰符设定文件类型为说明文档
8. %changelog
内容格式为:
* 星期 月份 日子 年份 维护内容
注: 每个维护记录均以*开头,星期,月份均须为英文缩写。维护内容多时可分行编写

参考http://linux.chinaunix.net/techdoc/system/2006/03/09/928764.shtml