News and Editorials
The Great Package Management Experiment
Last week's
Revisiting RPM Package
Management in the distribution section of LWN was quickly followed by a
heated debate about software management in various distributions.
Predictably, the discussion soon evolved into a full-scale "distro war",
where each distribution was vigorously defended by its respective vocal fans.
This heated feedback resulted in an attempt to conduct a practical
experiment. It will examine the package management tools in five major binary
Linux distributions (Debian, Mandrake, Red Hat, Slackware, SuSE) and provide
examples of 1) installing a package not officially supplied by the
distribution itself and 2) upgrading the entire distribution to a newer
version. Without any further ado, let's get on with the show, in alphabetical
order.
Debian GNU/Linux
I chose MPlayer for the test of installing a third-party package. MPlayer is a
popular media player for Linux, but most distributions do not supply it due
to potential legal issues with certain codecs included in the package. Debian
is no exception. Luckily, visiting apt-get.org and typing "mplayer" into
the site's search engine reveals the availability of MPlayer from a number
of unofficial repositories, as well as instructions for adding the
repository to one's sources.list. In case of Debian Woody, this is a simple
matter of adding 'deb http://marillat.free.fr stable main' to
/etc/apt/sources.list, then executing the following:
apt-get update
apt-get install mplayer
That's all to it, MPlayer is now installed and ready for use.
As far as upgrading the Debian distribution to the latest version, this is
done with a single command:
apt-get dist-upgrade
This is a well-tested, well-documented and reliable procedure for upgrading a
Debian system. The ease of package installation (whether native or
third-party) and system upgrades are often considered to be some of the most
pleasant aspects of using Debian GNU/Linux and this is hard to argue. Overall
score (on a scale from 1 to 10): third-party package installation: 10,
distribution upgrade: 10.
Mandrake Linux
Like Debian, Mandrake does not supply MPlayer as part of the distribution. A
quick trip to Penguin Liberation Front
(PLF) reveals availability of the package, together with instructions on how
to add the necessary sources to Mandrake's package manager - urpmi. The site
also provides a well-designed three-step wizard, which enables users to
specify a Mandrake version, select official Mandrake mirrors and choose to
add other third-party repositories, such as PLF itself, Texstar's RPMs and
Java RPMs. The wizard outputs a number of urpmi.addmedia commands that need
to be executed from the command line - a simple copying and pasting those
into the Konsole does the trick. As soon as the execution completes, MPlayer
can be installed with:
urpmi mplayer
uprmi mplayer-gui
The first command gives an option to choose between a stable or development
version of MPlayer, which is followed by a prompt to confirm installation of
dependent files. Mandrake's package manager then goes on to fetch and install
all the necessary files. In the test, everything installed flawlessly and
typing "gmplayer" on the command line launched MPlayer in its full glory.
That was nice, but let's try something more challenging - such as updating the
entire distribution. At the time of the experiment, Mandrake Linux 9.2 was
not yet released, but the distribution's development branch called "Cooker"
was very close to what the final Mandrake 9.2 would look like, sans some last
minute bug fixes. I followed the instructions in Cooker HOWTO and How
to Upgrade Mandrake, updated the urpmi sources to point to a fast local
mirror and executed the following commands:
urpmi.update -a
urpmi --auto-select --no-verify-rpm --auto
urpmi kernel
The entire upgrade procedure was a surprisingly pleasant experience. All
completed without a single hitch and when I rebooted the system, I found
myself in a brand new Mandrake Linux 9.2, almost final. Comparing the upgrade
process to Debian, the only downside is that three commands are needed to
upgrade Mandrake, as opposed to a single command for upgrading Debian. The
overall score: third-party package installation: 10, distribution upgrade: 9.
Red Hat Linux
Red Hat Linux 9's only package updating tool with dependency resolution is
up2date. This was primarily designed for updating an existing installation
with critical bug fixes and security patches, rather than as a general
purpose package management tool. It is not possible to add third-party
repositories to up2date and non-subscribers require to fill in a lengthy
registration form every few months. But even paying subscribers have reported
frequent failures to connect to up2date servers shortly after Red Hat's
security advisories.
Currently, there are two third-party tools with dependency resolution
capabilities for Red Hat Linux - apt-get and yum. For the MPlayer
installation experiment, I settled on apt, which is trivial to set up on any
recent Red Hat installation - a quick trip to freshrpms.net was all that was
required to download the relevant RPM package and install it
manually. Afterward, installing MPlayer and all of its dependencies was
also a no-brainer:
apt-get install mplayer
As soon as the installation process completed, MPlayer was ready for use.
Next came the task of upgrading a vanilla Red Hat 9 to Rawhide, which is Red
Hat's development branch, probably fairly close to a new beta expected to be
released shortly. Here I chose yum for the job, mainly because yum is now
included in the Rawhide and presumably it will be included in the next
official Red Hat Linux release. The package is also available from freshrpms.net. After configuring the
sources, I issued the following commands:
yum check-update
yum -t -y upgrade
Perhaps being spoiled by a very easy Mandrake upgrade, I expected a similarly
smooth flow while upgrading Red Hat. Unfortunately, it wasn't the case. The
upgrade proved to be a lot of hard work and here is the summary of my
observations:
- One of the main disadvantages of the yum package manager is that it only
works with a Red Hat mirror, which has been "yumified". A yumified mirror
contains a separate directory with header files of every available RPM
package. At present, not many mirrors appear to have been yumified.
- The upgrade process aborted with errors on countless occasions. Even a
simple error such as a failure to download a package for whatever reason
brought the upgrade to a halt and had to be manually restarted. Once
restarted, yum went through a lengthy dependency checking period, despite the
fact that no change had been made to the package selection. Also, yum does
not seem to have the ability to re-try fetching a package in case the first
attempt fails.
- A major upgrade such as this one can take many hours, but unlike Debian or
Mandrake's package managers, yum gives no indication about the progress or
estimated time left.
Nevertheless, the upgrade eventually completed and I was able to boot into a
newly upgraded development version of Red Hat Linux. Perhaps another detailed
comparison of yum with apt would be useful here, but I'll leave it for
another time when we know more about Red Hat's (or Fedora's) direction in
terms of its package management. Worth mentioning here is
an interesting
comment by one of the readers in last week's forums, which deserves to be
quoted here:
Although yum is now in rawhide, I don't expect to see
it in a released version of RHL or RHEL. Why do I say this? Because the
newest up2date that will ship with the upcoming RHEL and RHL now supports
remote "yum" and "apt" repositories in addition to the native "rhn-style"
repositories. Since up2date now speaks all languages (rhn, apt, yum) there
is no need to ship those other tools.
Overall score (2 points were deducted for having to use a third-party package
manager): third-party package installation: 8, distribution upgrade: 3.
Slackware Linux
Slackware's package manager does not have the ability to resolve dependencies.
The MPlayer experiment started with a trip to LinuxPackages, where I located and
downloaded the necessary package, then executed installpkg:
installpkg mplayer-1.0pre1-i686-2rob.tgz
Although no errors were reported during installation, MPlayer failed to launch
due to missing libraries. Back to LinuxPackages to download alsa-lib, lame
and libdvdread (the dependent packages were clearly listed on the MPlayer
download page), before installing them with installpkg. This has satisfied
all requirements and MPlayer was ready for action.
There are three third-party packages that handle Slackware package updates -
these are swaret, slackpkg and slapt-get. Both swaret and slackpkg
have now been officially included in the "extra" directory of Slackware
Linux, but between the two of them only swaret has the ability to resolve
dependencies, while slackpkg is generally used to keep a Slackware system
synchronized with the "current" branch (i.e. development branch, equivalent
to Sid, Cooker or Rawhide). At this point, it is perhaps interesting to
note a recent comment
by Slackware's creator Patrick Volkerding, which indicates that not
everybody thinks highly about advanced package management tools: "I'm
not a big believer in automated dependency handling."
As with all other distributions in this experiment, I wanted to upgrade a
vanilla Slackware 9.0 installation to the latest available development
version, which at the time of writing was Slackware Linux 9.1-beta2. This can
be done with Slackware's native tools, but the process is fairly involved, it
requires manual download of all upgraded packages, which then need to be
upgraded with upgradepkg in a certain correct order. After downloading and
installing swaret, the same could be achieved with two commands:
swaret --update
swaret --upgrade -a
Again, the process took time, but completed with no errors. Several newly
upgraded packages required extra packages to satisfy dependencies and this is
the only place where user intervention was called for to confirm the action.
But the overall experience was very similar to upgrading Mandrake, except
that it required a third-party tool.
Overall score (2 points were deducted for having to use a third-party
package manager): third-party package installation: 5, distribution upgrade: 7.
SuSE Linux
As many readers correctly pointed out, SuSE's native package manager called
YOU (YaST Online Update), does indeed have dependency resolution
capabilities. My apologies to SuSE users for the erroneous claim to the
contrary. The reason which led me to believe otherwise was the frequency with
which questions about apt-get come up on SuSE's mailing lists. Upon some
investigation, it would appear that the main reason for apt-get's
proliferation and preference among SuSE users is that certain third-party
repositories of SuSE packages encourage users to make use of it. The popular
usr local bin, which provides
up-to-date GNOME packages is a good example. Another major advantage of APT for SuSE is its ability to
upgrade the entire distribution with a single command and without
re-installing. According to this comparison chart
YOU cannot be used for this purpose.
Keeping uniformity in the package installation experiment proved difficult,
because SuSE is the only distribution in this list that does ship with
MPlayer. However, some of the useful, but legally questionable components and
plugins are missing from it, so let's try to install a more useful version,
such as the one found at links2linux.de. Unfortunately,
attempting to add the source of the MPlayer package to Software Source
Media in YaST resulted in a "ERROR(InstSrc:E_no_instsrc_on_media)"
message. But after installing apt and its dependencies, and updating apt's
sources, MPlayer installed with a single command:
apt-get install MPlayer
The test of upgrading the entire SuSE 8.2 distribution to a newer version
could not be done, simply because a newer version of SuSE Linux has yet to be
released. It will probably be another two months before SuSE 9.0 directories
appear on mirrors to give apt-get a chance to do its magic. Overall score:
third-party package installation: 6, distribution upgrade: not rated.
Conclusion
To conclude this lengthy and time consuming experiment involving package
installations and distribution upgrades, we have two clear winners - Debian
and Mandrake. Debian is hard to beat when it comes to overall
convenience, but Mandrake has made a lot of effort and its urpmi package
management and underlying technology has just about succeeded in catching up
with Debian's. The other three distributions have a long way to go. Red Hat
is currently in a major transition and the question of package and
distribution upgrades is probably being addressed as I write this. Slackware
is easy to upgrade with swaret, a tool which will be included in the upcoming
Slackware 9.1, but it doesn't handle installing packages from third-party
repositories. As for SuSE, it falls short of all other distributions. YOU has
a pleasant interface and it works extremely well within its official package
set, but as a software management tool, it has too many shortcomings to
compare well with either apt-get or urpmi.
Comments (51 posted)
Distribution News
Debian GNU/Linux
The Skolelinux project will be working with
Debian to revive and take over the Debian-Edu sub-project.
rpmseek.com has announced that rpmseek.com
now indexes Debian Linux (.deb) software packages.
Comments (none posted)
Gentoo Weekly Newsletter -- Volume 2, Issue 34
The Gentoo Weekly Newsletter for the week of September 22, 2003 is out.
This week's issue looks at the Gentoo 1.4 maintenance release 1 for x86, an
experimental IA-64 stage1 that is now available, and much more.
Full Story (comments: none)
Lycoris Desktop/LX Update 3
Lycoris has released Desktop/LX
Update 3. This Update features a new Help Center with interactive
audio-visual tutorials, hundreds of updated drivers, crisper font handling,
increased printer support for HP printers, extended digital camera support
from Vivitar and Olympus, auto-configuration of WiFi connections, and
exclusive Signature Wallpapers from Organic Light Photography.
Full Story (comments: none)
Slackware Linux
Slackware Linux has announced the first
release candidate for Slackware 9.1 in Monday's
slackware-current
changelog entry, followed by RC2 on Tuesday. It won't be long now, in
fact Slackware 9.1 might be out by the time you read this.
Footnotes reports that
Dropline GNOME 2.4.0 for Slackware 9 is out. The package contains GNOME
2.4, AbiWord 2.0, Gnumeric 1.2, Epiphany 1.0, and a bunch of other stuff.
Comments (none posted)
Minor distribution updates
Astaro Security Linux
Astaro Security Linux has released
v3.220 with major security
fixes. "
Changes: This Up2Date fixes the CAN-2003-0693 sshd
vulnerability."
Comments (none posted)
CDLinux
CDLinux has
released
v0.4.5 with
major feature enhancements. "
Changes: The init scripts were modified
to make the booting procedure more flexible. CDlinux can now boot from
almost any IDE/USB device, not only CDROMs. You can even boot it from a FAT
partition. CDlinux can also run in "loop" mode if there is not enough
memory to store the root filesystem in RAM."
Comments (none posted)
CrashRecoveryKit
CrashRecoveryKit has released
v2.4.21-mdk91, based on Mandrake 9.1 (i586). "
The ram filesystem for
the mdk91 edition is 16 Mb and now needs at least 24Mb ram to boot. In
addition the Logical Volume Manager (LVM) administration tools are
added."
Full Story (comments: none)
eMoviX
eMoviX
has released
v0.8.0
with minor feature enhancements. "
Changes: This version adds a
Spanish version of the README, improves settings for the FB boot label,
improves NVIDIA TV-out, and includes brand new support for installation on
Debian systems."
Comments (none posted)
Fli4l
Fli4l (Floppy ISDN/DSL) has released
v2.1.4 with major feature
enhancements. "
Changes: Updated to Kernel 2.4.22, uClibc 0.9.20,
BusyBox 1.0-pre3, gtk-imonc 0.6, and Privoxy 3.0.2. PPPoE in the kernel is
now the default. You can use active-filter for ISDN. There are several
minor bugfixes and changes."
Comments (none posted)
INSERT
INSERT has
released
v1.02 with
minor feature enhancements. "
Changes: INSERT was changed to boot
with isolinux. This makes it possible to include additional boot options
(e.g. for boot floppies) and eliminates the limitation on the boot disk
size (more drivers). memtest86 has been added as a boot menu option. The
cpio and dialog packages have been added (absence of the latter caused
netcardconfig to fail). The links Web browser was upgraded to version
030709. The catchFirebird script was updated to download Firebird
0.6.1."
Comments (none posted)
KNOPPIX
KNOPPIX has
released
v3.3-2003-09-22 with minor
feature enhancements. "
Changes: AX25 protocol support has been
added. The boot option tohd=hda1 has changed to tohd=/dev/hda1 for
consistency. There is a new and improved unofficial installer
"knoppix-installer", and a service menu for Samba exporting. Xchat has been
re-added. ddcxinfo-knoppix now uses the extended monitor modelines from
Kano by default."
Comments (none posted)
Morphix
Morphix has released
v0.4-1 with major feature
enhancements. "
Changes: This version now features Gnome 2.4 along
with lots of bugfixes, a partial rewrite of the installer, better themes,
toram/tohd bootoptions, memtest86, supermount instead of autofs, LUFS,
direct-install/execute/copy CDROM directories, a new NVIDIA driver, and
more."
Comments (none posted)
Quantian
Quantian release
0.3.9.2 is available. This release adds many new packages and deletes a
couple of others. Click below for details.
Full Story (comments: none)
Recovery Is Possible!
Recovery
Is Possible! (RIP) has released
v6.4 with minor bugfixes.
"
Changes: A few bugs have been fixed and some software has been
updated. There's also a CD version that combines the Linux and FreeBSD
systems on one bootable CD."
Comments (none posted)
Salvare
Salvare has released
v0.1.3 with minor feature
enhancements. "
Changes: This release sets up for the 0.3.0 release
in terms of architecture changes, etc.: the boot process is now entirely
BusyBox based (which has been upgraded to 1.00-pre2), the system can be
customised using a bootstrap floppym, and the Debian mirror can be
customised during manual configuration. chkrootkit will no longer report
false positives against Salvare itself (and has been upgraded to the latest
version), the network card probe is less likely to hang certain hardware
configurations, and localisation issues are resolved."
Comments (none posted)
Slackware Live CD
Slackware Live CD has released
v2.9.0.22 with major
feature enhancements. "
Changes: Kernel 2.4.22 (with XFS support and
ALSA drivers) has been added, so many more network and sound cards are
supported now. This release adds CUPS for printing, mplayer 1.0pre1, and
fluxbox 0.9.6pre1, and removes apache, PHP, and MySQL. proftpd and
configsave/configrestore have been fixed."
Comments (none posted)
uClinux
uClinux has released
v20030909 with major
feature enhancements. "
Changes: This version features the latest
2.4.22 kernel, platform updates, more apps, and some cleanups."
Comments (none posted)
Warewulf
Warewulf has released
v1.14 with major feature
enhancements. "
Changes: Support has been added for various
authentication mechanisms (NIS, LDAP, etc) for the master node. Plugins
have been built for Nagios so that node status can be easily
monitored. Tiny RAM disk support using NFS root has been built (very
experimental). Some packages have been added to the virtual node file
system, and some code has been cleaned up."
Comments (none posted)
wrt54g-linux
wrt54g-linux has
released
v0.2 with
minor feature enhancements. "
Changes: Several new executables and
drivers were added, including a VPN daemon. An "options" subdirectory was
created for executables that are not installed on the box by default. A
Rendezvous daemon is now started to advertise the new Web server, and a
script for transferring single files to the box was included."
Comments (none posted)
Page editor: Rebecca Sobol
Next page: Development>>