===== Useful command list ===== **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. ===== Building a dummy/empty RPM ===== 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).