您的位置:首页 > 运维架构 > Linux

Linux系统下面制作RPM安装文件

2009-10-21 14:21 549 查看
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)开始执行

%veryfiscript
执行时间:软件包校验脚本程序(verifyscript)开始执行

%triggerin -- xiuwu
执行时间:软件包安装时触发脚本程序(triggerin)开始执行

%triggerun -- yuntaishan < 2.0
执行时间:软件包卸载前触发脚本程序(triggerun)开始执行

%triggerpostun -- dapubu
执行时间:软件包卸载后触发脚本程序(triggerpostun)开始执行

@forandever 2009-10-21
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: