semse_vip 发表于 2006-6-29 13:14:30

一个做RPM安装包的SPEC脚本,比较实用。

redhat平台打RPM包的脚本SPEC文件。
---------------------------------------------------------

Summary: CorporationName appname
Name: appname
Version: 1.0.0
Release: 06242006
License: Commercial
Group: Applications/Communications
Vendor: CorporationName Coporation
Packager: authorName
URL: http://www.CorporationName.com/
Source: appname-1.0.0.tar.gz
buildroot: /usr/src/redhat/BUILD/appname-1.0.0


%description
The software is ...

%changelog
* Mon May 8 2005 Orignally created the spec file
- Mon May 8 2005 appname version 1.0.0

%prep
%setup -c
echo "Preparing install appname.."

%build

%post
CorporationName_DIR=/usr/local/CorporationName
appname_INSTALL_DIR=$CorporationName_DIR/mainapp

if [ ! -d $CorporationName_DIR ]; then
mkdir $CorporationName_DIR
fi

if [ ! -d $appname_INSTALL_DIR ]; then
mkdir $appname_INSTALL_DIR
fi

if [ -d $appname_INSTALL_DIR ]; then
if [ -f $appname_INSTALL_DIR/mainapp.conf ]; then
mv $appname_INSTALL_DIR/mainapp.conf $appname_INSTALL_DIR/mainapp.conf.rpmsave
fi
if [ -f $appname_INSTALL_DIR/mainappdaemon.conf ]; then
mv $appname_INSTALL_DIR/mainappdaemon.conf $appname_INSTALL_DIR/mainappdaemon.conf.rpmsave
fi
fi

install -c -m 111 -o $USER mainapp mainappdaemon $appname_INSTALL_DIR
install -c -m 666 -o $USER mainapp.conf mainappdaemon.conf $appname_INSTALL_DIR
install -c -m 111 -o $USER mainappdaemon-script /etc/rc.d/init.d/mainappdaemon

chkconfig --add mainappdaemon
chkconfig --level 2345 mainappdaemon on

ln -sf /etc/rc.d/init.d/mainappdaemon /sbin/mainapp

#echo "S0:2345:respawn:/sbin/agetty -L 38400 ttyS0" >> /etc/inittab
#echo "ttyS0" >> /etc/securetty

if [ -f /mainapp ]; then
rm -rf /mainapp
fi

if [ -f /mainapp.conf ]; then
rm -rf /mainapp.conf
fi

if [ -f /mainappdaemon ]; then
rm -rf /mainappdaemon
fi

if [ -f /mainappdaemon.conf ]; then
rm -rf /mainappdaemon.conf
fi

if [ -f /mainappdaemon-script ]; then
rm -rf /mainappdaemon-script
fi

%postun
chkconfig --level 2345 mainappdaemon off
chkconfig --del mainappdaemon

if [ -e /sbin/mainapp ]; then
rm -rf /sbin/mainapp
fi

#if [ `ps aux | grep 'mainappdaemon' | grep -v 'grep' | wc -l` -gt 0 ] then
# killall mainapp
#fi

#if [ `ps aux | grep 'mainapp' | grep -v 'grep' | wc -l` -gt 0 ] then
# killall mainapp
#fi

CorporationName_DIR=/usr/local/CorporationName
appname_INSTALL_DIR=$CorporationName_DIR/mainapp

# move mainapp files from linux system.
if [ -f $appname_INSTALL_DIR/mainapp ]; then
rm -rf $appname_INSTALL_DIR/mainapp
fi

if [ -f $appname_INSTALL_DIR/mainappdaemon ]; then
rm -rf $appname_INSTALL_DIR/mainappdaemon
fi

if [ -f /etc/rc.d/init.d/mainappdaemon ]; then
rm -rf /etc/rc.d/init.d/mainappdaemon
fi

%files
/mainapp
/mainapp.conf
/mainappdaemon
/mainappdaemon.conf
/mainappdaemon-script

----------------------------------------------
把该文件保存为spec,如app-20060624.spec,
然后执行rpmbuild -bb app-20060624.spec
在之前还需要把安装包所要安装的文件打成一个TAR包,并放到SOURCES目录下。如果研究过怎么打RPM包的话,应该知道SOURCES目录。
页: [1]
查看完整版本: 一个做RPM安装包的SPEC脚本,比较实用。