RPM Design Goals
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
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.