所有的rpm 安装或删除的时候都会运行一个脚本,如何查看到预先/后期的脚本呢,使用--scripts选项就可以查看到rpm包脚本
rpm -qp --scripts filename.rpm
例如
去显示所有memcached-1.2.8-1.el5.x86_64.rpm
的脚本,输入
$ rpm -qp --scripts memcached-1.2.8-1.el5.x86_64.rpm
样本输出
preinstall scriptlet (using /bin/sh):
getent group memcached >/dev/null || groupadd -r memcached
getent passwd memcached >/dev/null || \
useradd -r -g memcached -d /var/run/memcached \
-s /sbin/nologin -c "Memcached daemon" memcached
exit 0
postinstall scriptlet (using /bin/sh):
/sbin/chkconfig --add memcached
preuninstall scriptlet (using /bin/sh):
if [ "$1" = 0 ] ; then
/sbin/service memcached stop > /dev/null 2>&1
/sbin/chkconfig --del memcached
fi
exit 0
postuninstall scriptlet (using /bin/sh):
if [ "$1" -ge 1 ]; then
/sbin/service memcached condrestart > /dev/null 2>&1
fi
exit 0
去查看已经安装的包脚本,输入
# rpm -q --scripts packageName
# rpm -q --scripts httpd
样本输出
[root@txvip1 tmp]# rpm -q --scripts httpd
preinstall scriptlet (using /bin/sh):
# Add the "apache" user
/usr/sbin/useradd -c "Apache" -u 48 \
-s /sbin/nologin -r -d /var/www apache 2> /dev/null || :
postinstall scriptlet (using /bin/sh):
# Register the httpd service
/sbin/chkconfig --add httpd
preuninstall scriptlet (using /bin/sh):
if [ $1 = 0 ]; then
/sbin/service httpd stop > /dev/null 2>&1
/sbin/chkconfig --del httpd
fi
更多信息
man rpm