RPM: Difference between revisions
| Line 53: | Line 53: | ||
! 2 | ! 2 | ||
|- | |- | ||
| %pre | | %pre | ||
| | | | ||
| Install | | Install | ||
| Upgrade | | Upgrade | ||
|- | |- | ||
| %post | | %post | ||
| | | | ||
| Install | | Install | ||
| Upgrade | | Upgrade | ||
|- | |- | ||
| %preun | | %preun | ||
| Uninstall | | Uninstall | ||
| Upgrade | | Upgrade | ||
| | | | ||
|- | |- | ||
| %postun | | %postun | ||
| Uninstall | | Uninstall | ||
| Upgrade | | Upgrade | ||
Revision as of 20:36, 10 March 2015
Common RPM Tasks
Below are the common tasks I do with RPM.
List installed packages
rpm -qa
Look for a specific package by name
rpm -qi <package name>
Determine the origin of a file
rpm -qf <path to file>
eg:
# rpm -qf /etc/hosts
setup-2.8.14-10.el6.noarch
Extracting a rpm package
Go into a directory and extract it using cpio. This will dump the files in the current directory, so make a directory to avoid having your files clobbered.
mkdir package && cd package
rpm2cpio ~/custom-package.rpm | cpio -idmv
Remove a package with a broken uninstall script
rpm -e --noscripts <package>
Building RPM
Creating 32bit Dependency
In your RPM.spec file, have the following in your Requires line:
Requires: nss-pam-ldapd(x86-32)
Not:
Requires: nss-pam-ldapd.i686
Checking for Install/Upgrade/Remove in Install Scripts
To check whether a .rpm file is being installed, upgraded, or removed in the pre/post install scripts, check $1 against the table below:
| $1 = | 0 | 1 | 2 |
|---|---|---|---|
| %pre | Install | Upgrade | |
| %post | Install | Upgrade | |
| %preun | Uninstall | Upgrade | |
| %postun | Uninstall | Upgrade |
Example usage:
%pre
if [ $1 -eq 1 ] ; then
# Initial install
fi
Troubleshooting
Warning: RPMDB altered outside of yum.
If you ever get the error:
Warning: RPMDB altered outside of yum.
... it probably means that you ran rpm. To fix this warning, clear yum's cache and force a rebuild by running:
yum clean all
yum makecache