-->

Previous | Table of Contents | Next

Page 7

1.2. Package Management: How to Do It

Well, all this sounds great: easy install, upgrade, and deletion of packages; getting package information presented several different ways; making sure packages are installed correctly; and even tracking changes to config files. But how do you do it?

As mentioned earlier, the obvious answer is to let the computer do it. Many groups have tried to create package management software. There are two basic approaches:

Each approach has its good and bad points. In the first method, it's easy to install new packages, somewhat difficult to remove old ones, and almost impossible to obtain any meaningful information about installed packages.

The second method makes it easy to obtain information about installed packages and fairly easy to install and remove packages. The main problem with using this method is that there may not be a well-defined way to execute any commands required during the installation or removal process.

In practice, no package management system uses one approach or the other; all are a mixture of the two. The exact mix and design goals will dictate how well a particular package management system meets the needs of the people using it. At the time Red Hat Software started work on its Linux distribution, there were a number of package management systems in use, each with a different approach to making package management easier.

Page 8

1.2.1. The Ancestors of RPM

Because this is a book about the Red Hat Package Manager, a good way to see what RPM is all about is to look at the package management software that preceded RPM.

1.2.1.1. RPP

RPP was used in the first Red Hat Linux distributions. Many of RPP's features would be recognizable to anyone who has worked with RPM. Some of these innovative features are

Although RPP possessed several of the features that were important enough to continue on as parts of RPM today, it had some weaknesses, too:

Even with these problems, RPP was one of the things that made the first Red Hat Linux distributions unique. Its ability to simplify the process of installing software was a real boon to many of Red Hat's customers, particularly those with little experience in Linux.

Page 9

1.2.1.2. PMS

While Red Hat Software was busy with RPP, another group of Linux devotees was hard at work with its package management system. Known as PMS, its development, lead by Rik Faith, attacked the problem of package management from a slightly different viewpoint.

Like RPP, PMS was used to package a Linux distribution. This distribution was known as the BOGUS distribution, and all the software in it was built from original unmodified sources. Any changes that were required were patched in during the process of building the software. This is the concept of pristine sources and is PMS's most important contribution to RPM. The importance of pristine sources cannot be overstated. It allows the packager to quickly release new versions of software and to immediately see what changes were made to the software.

The chief disadvantages of PMS were weak querying ability, no package verification, no multiple architecture support, and poor database design.

1.2.1.3. PM

Later, Rik Faith and Doug Hoffman, working under contract for Red Hat Software, produced PM. The design combined all the important features of RPP and PM, including one-command installation and uninstallation, scripts run before and after installation and uninstallation, package verification, advanced querying, and pristine sources. However, it retained RPP's and PMS's chief disadvantages: weak database design and no support for multiple architectures.

PM was very close to a viable package management system, but it wasn't quite ready for prime time. It was never used in a commercially available product.

1.2.1.4. RPM Version 1

With two major forays into package management behind them, Marc Ewing and Erik Troan went to work on a third attempt. This one would be called the Red Hat Package Manager, or RPM.

Although it built on the experiences of PM, PMS, and RPP, RPM was quite different under the hood. RPM was written in the Perl programming language for fast development. Version 1 of RPM focused on addressing the flaws of its ancestors. In some cases, the flaws were eliminated, while in others the problems remained.

Some of the successes of RPM version 1 were

Previous | Table of Contents | Next