Revisiting RPM Package Management
[Posted September 17, 2003 by ris]
[This article was contributed by Ladislav Bodnar]
The anticipated announcement by Red Hat, Inc. about the future direction of
the Red Hat Linux Project, originally scheduled for publishing early this
week, was rudely postponed by the imminent arrival of hurricane Isabel in
North Carolina. But even as preparations for the potential natural disaster
took precedence over writing code, Red Hat still found time to update us on
the progress.
"We are excited to announce that we are working on an
alliance with another well-known provider of Red Hat compatible
packages", claims the updated
Red
Hat Linux Project page. It also promises to release a full
announcement, and possibly a new Red Hat beta, on Monday, September 22.
One of the more exciting aspects of this change in direction for Red Hat Linux
is introduction of an advanced RPM package manager into the distribution.
Traditionally, a lack of one, especially a lack of one with the ability to
auto-resolve dependencies, has been a sore point with many users of Red Hat,
SuSE and most other RPM-based distributions who often found it frustrating to
install or upgrade software. In recent years, many settled on using a
third-party application, such as apt-get, apt4rpm or yum, but nevertheless,
Red Hat and SuSE's reluctance to provide and support any of them was not
appreciated. Luckily, the Linux world is changing fast and Red Hat no longer
sees the traditional retail boxed sets as a major income provider. This was
possibly one of the reasons for introducing "yum" into Red Hat Linux.
Before we get to explore the wonderful world of advanced package managers,
let's take a look at the RPM. Often incorrectly referred to as "Red Hat
Package Manager", the abbreviation actually stands for "RPM Package Manager",
a recursive acronym often found in UNIX and Linux worlds. "The RPM
Package Manager (RPM) is a powerful command line driven package management
system capable of installing, uninstalling, verifying, querying, and updating
computer software packages.", asserts the rpm.org website. The format was developed by
Red Hat Inc. at some point in mid-nineties, when the Linux distribution
market was utterly dominated by Slackware Linux and its TGZ package
format. TGZ packages were (and still are) nothing more than simple
compressed archives of individual files along with a script that places
them into correct directories during installation. When RPM arrived, it was
seen as a huge improvement over TGZ. It is not unreasonable to conclude
that the RPM package format played a crucial role in the dramatic swing in
Linux market share - away from Slackware and towards Red Hat. In the
following years, the RPM package format was also adopted by SuSE, Mandrake,
Caldera, Turbolinux and many other distributions.
As wonderful as RPM was compared to TGZ, it was the non-commercial Debian
project which sprinted ahead in the package management game in March 1999
with the introduction of APT in Debian 2.1. APT is a front-end to
Debian's own package management with an ability to resolve software and
library dependencies. This proved to be a very successful tool and the RPM
package manager was soon to be subjected to crude jokes by Debian users and
developers. However, they only lasted till December 2000 when Conectiva Linux
ported APT to create apt-rpm and incorporated it
into its own distribution. Many other RPM-based distributions followed suit
and apt-rpm was soon spotted in projects ranging from Russia's ALT Linux to
Japan's Vine Linux. Confidence in RPM was slowly returning into the world
of Linux users - except for the users of the Red Hat distribution who will
have to wait until late this year before they can enjoy supported advanced
package management with dependency resolution.
Those of you who monitor the Red Hat beta mailing list or the Red Hat
development branch called Rawhide, have already noticed the presence of "yum"
among the long list of packages. What is "yum"? "Yellow dog Updater, Modified
is an automatic updater and package installer/remover for RPM systems. It
automatically computes dependencies and figures out what things should
occur to install packages. It makes it easier to maintain groups of
machines without having to manually update each one using rpm."
Dependency information is extracted from RPM header files, which list
library and software requirements, as well as conflicts with other
packages. It is simple to use with commands such as 'yum check-update',
'yum update' and 'yum install <packagename>'.
Useful as yum is, many Red Hat veterans have already standardized on apt-get,
with its Debian-like commands of 'apt-get update', 'apt-get dist-upgrade' and
'apt-get install <packagename>'. However, apt-get has not been
spotted in Rawhide, so those who prefer to use it will have to continue
relying on an unofficial version. We have seen very little technical
information about Red Hat's reasons for favoring yum over apt-get, but this
is something that will no doubt be explained in the coming weeks. Both
apt-get an yum are supported by the Fedora
Linux community project, which is one of the largest and most popular
third-party repositories of Red Hat compatible RPM packages, while the
other main repository at Fresh RPMs
only provides apt-enabled package sources.
With Mandrake's own 'urpmi' package management and now Red Hat's inclusion of
'yum', SuSE Linux is the only major Linux distribution still stubbornly
refusing to provide and support any apt-like, dependency resolving package
management tool. How long before it too succumbs to the power of modern
software management?
(
Log in to post comments)