Q. How do I view the pre / post installation or uninstallation script inside the RPM file called foo.rpm under Red Hat Enterprise Linux / RHEL / CentOS / Fedora / Suse Linux? How do I list the package specific scriptlet(s) that are used as part of the installation and uninstallation processes?
A. To list the package specific scriptlet(s) that are used as part of the installation and uninstallation processes pass --scripts option to rpm command. You also need to specify the following options:
-q option : Query option
-p option : Query an (uninstalled) package PACKAGE_FILE. The PACKAGE_FILE may be specified as an ftp or http style URL, in which case the package header will be downloaded and querie).
General syntax for uninstalled foo.rpm file
$ rpm -qp --scripts foo.rpm
Find out Installation / Uninstallation scripts inside the rpm file called monit-4.9-2.el5.rf.x86_64.rpm:
$ rpm -qp --scripts monit-4.9-2.el5.rf.x86_64.rpm
Sample output:
warning: monit-4.9-2.el5.rf.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6 preinstall scriptlet (using /bin/sh): if ! /usr/bin/id monit &>/dev/null; then /usr/sbin/useradd -M -r -d /var/lib/monit -s /bin/sh -c "monit daemon" monit || \ logger -t monit/rpm "Unexpected error adding user \"monit\". Aborting installation." fi postinstall scriptlet (using /bin/sh): /sbin/chkconfig --add monit preuninstall scriptlet (using /bin/sh): if [ $1 -eq 0 ]; then service monit stop &>/dev/null || : /sbin/chkconfig --del monit fi postuninstall scriptlet (using /bin/sh): /sbin/service monit condrestart &>/dev/null || : if [ $1 -eq 0 ]; then /usr/sbin/userdel monit || logger -t monit/rpm "User \"monit\" could not be deleted." fi
General syntax for installed httpd package
$ rpm -q --scripts httpd
Sample output:
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
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop













{ 1 comment… read it below or add one }
To see what is there in a rpm type the following command:
rpm2cpio foo.rpm | cpio -idmv