These classnotes are depreciated. As of 2005, I no longer teach the classes. Notes will remain online for legacy purposes

UNIX01/What Is RPM

Classnotes | UNIX01 | RecentChanges | Preferences

As we have discussed, Linux and most UNIX applications have been traditionally distributed as source code. Building an entire system from source is a significant undertaking and is not for the faint of heart.

Because it was such a significant undertaking, distributions were created to make installing a Linux system that much simpler. Many distributions were entirely community based, however some were created for commercial purposes.

Red Hat and RPM

Red Hat was one of the first distributions. The one thing that set Red Hat apart from many of the other distributions was a very clever little package management system called RPM. RPM originally stood for "Red Hat Package Management", but has since been changed to RPM Package Management (ah, joy, another piece of recursive humor like "Gnu's Not Unix") because it is used by many other distributions.

An application was archived, digitally signed, and any installation/uninstallation scripts were bundled up together into a file known as an "RPM" file. This single RPM file could then be easily distributed and installed with very simple commands.

RPM was special because it was one of the first packaging systems to include dependency trees. A dependency tree is really just a list of files and other RPMs that a given RPM depends upon. For example, crontab (which we just looked at) has an RPM under Red Hat that depends upon the following files and packages:

 /bin/bash  
 config(crontabs) = 1.10-5
 rpmlib(CompressedFileNames?) <= 3.0.4-1
 rpmlib(PayloadFilesHavePrefix?) <= 4.0-1

Because the RPM told you what you needed in order to use its application, installing applications instantly became much easier. You simply had to track down the requirements, and install them as well.

RPM very quickly became a defacto standard for many, many different Linux distributions. SuSE, Mandrake, even Caldera (now SCO) have all used it. It has evolved to include many new functions including the ability to arbitrarily define installation paths, selectively install packages based upon requirements, and even include several sublayers of package scripting (pre-install, post-install, etc.)

RPM is even the required package format for a Linux distribution to be LSB compliant (LSB is the "Linux Standards Base", and is a new "standardization" effort to make Linux distributions more "alike". Read more about it here: http://www.linuxbase.org/)

RPM was not actually the first package management system used in Red Hat. Originally, they had something called RPP. Later, there were efforts in two other formats, PMS and PM. RPM was the ultimate successor to all of these, combining many of the best atributes of each.


Classnotes | UNIX01 | RecentChanges | Preferences
This page is read-only | View other revisions
Last edited August 9, 2003 3:09 am (diff)
Search:
(C) Copyright 2003 Samuel Hart
Creative Commons License
This work is licensed under a Creative Commons License.