To download a copy of this document, please select one of the following:
djb@redhat.com
``Red Hat Tips'' are documentation meant to help Red Hat users with specific tasks. Some of these documents are for new users, some are for advanced users. Hopefully each document will also be of help for both new and advanced users. If you have contributions to make, please send them to tech-sup@redhat.com. If you have changes that need to be made to individual Tips, send them to the author of that document.
RPM is the Red Hat Package Manager. The RPM system is used to manipulate individual software packages. These packages, called RPMs, can be installed, uninstalled, queried and verified. This document will introduce you to the most basic (and most frequently used) RPM commands.
Releases 2.0 and 2.1 of Red Hat Linux were shipped with RPM version 1.X. By the time you read this, RPM 2.0 should be released with many new features and improvements.
By convention, RPMs are named as follows:
name-version-release.arch.rpm
Name and version are the name and version of the software. Release is the release number of the package (sometimes there are many releases of a package of the same version of software). Arch denotes the specific architecture the package was built on. For example, i386 denotes Intel based machines, axp denotes Digital Alpha based machines.
The -q option specifies query mode.
The following options specify information you want:
<nothing> Name, version, release
-i Name, description, builder, build date, etc
-l List of files in package
-d List of documentation
-c List of configuration files
The following options specify what packages you want to query:
name Installed package name
-a All installed packages
-f file Installed package owning file
-p package Query RPM package
Combine one of each of the above options to form a query. For example, to list all the packages installed on your system:
rpm -qa
To list all the configuration files enter:
rpm -qac
To list all the documentation in the package owning /usr/bin/jed enter:
rpm -qdf /usr/bin/jed
Use the -i option to install a package:
rpm -i foo-1.0-1.i386.rpm
One neat set of options is -vh which prints a bar of hash marks
as the package installs:
rpm -ivh foo-1.0-1.i386.rpm
Verifying packages can be a very enlightenting experience. To verify,
use -V along with one of the ``package selection options'' listed
in the Querying section. For instance, if you are having trouble
with the Emacs package, and can not figure out the problem, one of
the first things you might do is verify the package:
rpm -Vf /usr/bin/emacs
If any anomolies are reported, you should rerun the verification in
verbose mode with -v:
rpm -Vvf /usr/bin/emacs
This will list the exact discrepencies the rpm finds, including changed permission, owners, groups, file sizes, etc. Sometimes, these changes are normal and are not cause for alarm. For instance, if you modify a configuration file, the verification will report it, but it is not necessarily a problem. The /dev/tty* files are another example. These files change ownership as users log in and out, so changes in ownership may not be cause for alarm.
To uninstall a package use -u and the package name:
rpm -u emacs
Note that the package name is not the name of the RPM package you
installed, that is, it is not emacs-19.30-1.i386.rpm.
To upgrade to a new package use -U and the RPM package file name:
rpm -U emacs-20.0-1.i386.rpm
This will install the new package, and uninstall any older emacs packages. If there were configuration files that you modified in the old package, your files will be saved to backup names, and RPM will notify you. If this happens you should investigate your configuration file and the new one, and perhaps incorporate your changes into the new version.
Many RPM packages are available at:
ftp://ftp.redhat.com/current
ftp://ftp.redhat.com/contrib
ftp://ftp.redhat.com/non-free
Once you are connected to ftp.redhat.com you can also search for a particular filename. If I was looking for a kermit RPM I would enter:
site exec locate kermit
and the system would display the location of the kermit RPM.
More documentation on RPM, including instructions for building your own RPM packages, can be found by reading the man page, the RPM-HOWTO (http://www.redhat.com), and a paper presented at the 1996 Free Software Conference (ftp://ftp.redhat.com).
This document is Copyright (C) 1996 by Red Hat Software. Redistribution of this document is permitted as long as the content remains completely intact and unchanged. In other words, you may reformat and reprint or redistribute only.