To install a package (i=install v=verbose h=show hash marks):
rpm -ivh package.rpm
To uninstall (erase) a package:
rpm -e package-name
To upgrade a package:
rpm -Uvh package.rpm
To test a package without installing (checks dependencies):
rpm -Uvh --test package.rpm
To verify a package:
rpm -Vvv package-name
To verify ALL installed packages:
rpm -Va
To find installed package names matching a pattern:
rpm -qa | grep pattern
To see what files a new package is going to install:
rpm -qpl package.rpm
To see what files belong to an installed package:
rpm -ql package-name
To see what package owns a file:
rpm -qf filename
example:
# rpm -qf /usr/bin/free procps-3.2.8-14.fc14.x86_64
alternative with yum
# yum search deallocvt Warning: No matches found for: deallocvt No Matches found
This is where yum's whatprovides (provides works in recent yum versions) command works really well:
# yum whatprovides */deallocvt kbd-1.15-11.fc14.x86_64 : Tools for configuring the console Repo : fedora Matched from: Filename : /usr/bin/deallocvt
To rebuild the RPM database:
rpm --rebuilddb
To bypass running the install/uninstall scripts in a package:
rpm -ivh --no-scripts package.rpm
also
rpm -e --no-scripts package-name
Mass install:
rpm -ivh *.rpm
Mass uninstall of packages that match a pattern:
rpm -qa | grep pattern | xargs rpm -e
How to extract contents of an RPM package
rpm2cpio package.rpm | cpio -dimv
As the name implies, rpm2cpio takes an RPM package file and converts it to a cpio archive. The -i flag to the cpio command indicates that cpio is reading in the archive to extract files, and the -d flag tells cpio to construct directories as necessary. The -v flag tells cpio to list file names as files are extracted, and the -m flag tells cpio to retain previous file modification times when creating files.
To create such a fake RPM file, first ensure that you have the rpm-build package installed. Then, save this text somewhere as
dummy.spec
:
Summary: Dummy Package to provide tomcat5 Name: dummy-tomcat Version: 1.0 Release: 1 Group: System Environment/Base License: Beerware BuildArch: noarch Provides: tomcat5, tomcat5-admin-webapps %description This meta-package fools other packages to think you have tomcat5 installed %files
Now, run the command: rpmbuild -bb dummy.spec
It will create a dummy-1.0-1.noarch.rpm which when installed, will provide tomcat5 (assuming your software looks at the provides list rather than the name list).