The RPM system wasn’t created to solve some theoretical problem. Instead, it is the result of years of hard-won practical experience in trying to manage systems with a large number of applications. RPM builds upon older systems that were created to solve some of the problems faced by system administrators. RPM goes further, though, and tries to provide a complete package-management solution. This includes the ability to deal with wrinkles that Linux faces but that many other operating systems do not need to address.
For example, most other operating systems don’t support more than one or two processor architectures. Sun’s Solaris, for example, supports only the SPARC and Intel architectures. Linux supports these and more. Most other operating systems also don’t include nearly so many applications. From the OpenOffice.org office suite to the Apache Web server, Linux distributions are literally packed with applications. As a final point, most other operating systems provide mainly closed-source applications. Linux, on the other hand, includes thousands of open-source applications.
From the perspective of the organizations making Linux distributions, these wrinkles make Linux harder to manage. Luckily for end users, the solution to these problems helps make the RPM system better able to manage user systems:
Supports Multiple Architectures — The RPM system tags each package with the processor architecture.
Permits Multiple Software Versions in Parallel — RPM allows for multiple versions of the same package to be installed on the same system.
One File Per Program — RPM packs all of the files in a package into one file, called an RPM file, for easy transfer to other systems.
Requires Only One Command Per Action — Most RPM operations such as installing or removing packages require only a single command to run.
Uses Pristine Sourcecode — The RPM system supports building RPM packages from a pristine set of sources. This means you can reproduce the commands required to build an application, improving quality.
This chapter introduced the RPM system and the history behind it. The next chapter delves into the RPM basics, including files, database, and commands.