现在的位置: 首页 > 综合 > 正文

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

2013年09月03日 ⁄ 综合 ⁄ 共 1819字 ⁄ 字号 评论关闭

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)开始执行

抱歉!评论已关闭.