Linux系统下面制作RPM安装文件
@for&ever 2009-10-21
制作环境
操作系统:Cent OS 5.3
软件安装名称: ForEver
软件代码位置: /opt/ForEver
代码打包后名称:ForEver_install.tar.gz
制作步骤:
1、 拷贝打包文件
将文件ForEver_install.tar.gz拷贝到目录 /usr/src/redhat/SOURCE目录下
2、 编写 ForEver-1.1.spec 文件
在目录/usr/src/redhat/SPECS 下面建立文件 ForEver-1.1.spec
内容如下:
Summary: ForEver (FE)
Name: ForEver
Version: 1.1
Release: 1
License: GPL
Group: for&ever
Source: ForEver_install.tar.gz
URL: http://blog.csdn.net/forandever
Distribution: for&ever TEST Project
Vendor: for&ever
Packager: for&ever <xxxx@xxxx.com>
%description
ForEver (FE) 是测试的东东.用来测试制作 RPM安装包。
%prep
%setup -c
%build
%pre
if [ -d /opt/ForEver/ ]; then
date=`date +"%Y%m%d"`
bak=/opt/ForEver-${date}
echo ">>>>>>备份原目录为" ${bak}
mv /opt/ForEver/ ${bak}
fi
mkdir /opt/ForEver
%install
%post
chmod 777 /opt/ForEver/TMP/forandever.sh
/opt/ForEver/TMP/forandever.sh
rm -rf /opt/ForEver/TMP/forandever.sh
%preun
/opt/ForEver/stop-forandever.sh
%postun
rm -rf /etc/init.d/ForEverMgr
rm -rf /opt/ForEver
%files
/opt/ForEver/
%changelog
* Fri Oct 21 2009 forandever
- 第一次编译.
脚本功能的简单解释:
%pre段:
安装之前要执行如下操作:
判断将来RPM包的安装目录(/opt/ForEver/)是否已经存在,如果存在,就备份原目录,然后新建目录
%post段:
安装完成后,要执行如下操作:
运行 forandever.sh脚本,执行想要进行的操作(例如,根据不同的机器,修改配置文件)
%preun段:
卸载之前执行的操作:
这里是执行脚本 /opt/ForEver/stop-forandever.sh,停止 forandever的服务。
%postun段:
卸载之后要执行的操作。
这里是删除一些写在系统位置的文件和数据等。
3、 执行命令进行编译
在目录/usr/src/redhat/SPECS下执行如下的命令进行编译:
# rpmbuild -ba ForEver -1.1.spec
4、 查看制作好的安装文件,安装和卸载
在目录/usr/src/redhat/RPMS下会有生成好的 RPM安装文件。
安装使用命令:
#rpm -ivh --nodeps ForEver -1.1-1.i386.rpm
卸载使用命令:
#rpm -e ForEver -1.1-1
查看安装文件的信息使用命令:
#rpm -qpi ForEver -1.1-1.i386.rpm
附:关于SPEC脚本,比较有用的几个参数的执行时间说明:
%prep
执行时间:预处理脚本程序(prep)开始执行
%setup
%build
执行时间:编译连接脚本程序(build)开始执行
%install
执行时间:安装脚本程序(install)开始执行
%clean
执行时间:建包结束后清理脚本程序(clean)开始执行
%pre
执行时间:安装前执行脚本程序(pre)开始执行
%post
执行时间:安装后执行脚本程序(post)开始执行
%preun
执行时间:卸载前执行脚本程序(preun)开始执行
%postun
执行时间:卸载后执行脚本程序(postun)开始执行