
RPM-Tips
Donnie Barnes, djb@redhat.com
V1.0, February 16, 1996
1. Preface
``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.
2. Introduction
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.
3. RPM Packages
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.
4. Querying
The -q option specifies query mode.
The following options specify information you want:
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
5. Installing
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
6. Verifying
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.
7. Uninstalling
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.
8. Upgrading
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.
9. Finding RPMs
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.
10. Further Reading
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).
11. Copyright Notice
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.
Last Modified: 16 March 1996
St. Louis Unix Users Group - Linux SIG