The
R
ed Hat
P
ackage
M
anager (RPM), is an open packaging system available
for anyone to use, and works on Red Hat Linux as well as other Linux and UNIX
systems. Red Hat, Inc. encourages other vendors to take the time to look at
RPM and use it for their own products. RPM is distributable under the
terms of the GPL.
For the end user, RPM provides many features that make maintaining a
system far easier than it has ever been. Installing, uninstalling, and
upgrading RPM packages are all one line commands, and all the messy
details have been taken care of for you. RPM maintains a database of
installed packages and their files, which allows you to perform powerful
queries and verification of your system.
During upgrades, RPM handles configuration files specially, so that you
never lose your customizations -- a feature that is impossible with
straight
.tar.gz
files.
For the developer, RPM allows you to take source code for software and
package it into source and binary packages for end users. This process is
quite simple and is driven from a single file and optional patches that
you create. This clear delineation of "pristine" sources and your patches
and build instructions eases the maintenance of the package as new
versions of the software are released.
Please Note:
Although it can be important to understand the concepts behind RPM, for
those who prefer a graphical interface to the command line, we suggest
you use
Gnome-RPM
. Please see
Chapter 7
for more information.
Before trying to understand how to use RPM, it helps to have an idea of
what the design goals are.
-
Upgradability
-
With RPM you can upgrade individual components of your system
without completely reinstalling. When you get a new release of an
operating system based on RPM (such as Red Hat Linux), you don't need
to reinstall on your machine (as you do with operating systems
based on other packaging systems). RPM allows intelligent,
fully-automated, in-place upgrades of your system. Configuration
files in packages are preserved across upgrades, so you won't lose
your customizations.
-
Powerful Querying
-
RPM is also designed to have powerful querying options. You can
do searches through your entire database for packages or just
certain files. You can also easily find out what package a file
belongs to and where it came from. The files an RPM package
contains are in a compressed archive, with a custom binary header
containing useful information about the package and its contents,
allowing you to query individual packages quickly and easily.
-
System Verification
-
Another powerful feature is the ability to verify packages. If
you are worried that you deleted an important file for some
package, simply verify the package. You will be notified of any
anomalies. At that point, you can reinstall the package if
necessary. Any configuration files that you modified are
preserved during reinstallation.
-
Pristine Sources
-
A crucial design goal was to allow the use of "pristine" software
sources, as distributed by the original authors of the software.
With RPM, you have the pristine sources along with any patches
that were used, plus complete build instructions. This is a big
advantage for several reasons. For instance, if a new version of
a program comes out, you don't necessarily have to start from
scratch to get it to compile. You can look at the patch to see
what you
might
need to do. All the
compiled-in defaults, and all of the changes that were made to get
the software to build properly are easily visible this way.
This goal may only seem important for developers, but it results
in higher quality software for end users too. We would like to
thank the folks from the BOGUS distribution for originating the
pristine source concept.