The release of Fedora 11 promises numerous new improvements. One such improvement is an updated and more efficient package manager. How does it compare to the previous release, version 10?
Red Hat Inc is a publicly listed company and one of the largest players open source sector. They sell support and services for their open source technology, Red Hat Enterprise Linux (RHEL). RHEL is built on the community driven Linux distribution called Fedora, which the company sponsors. It is one of the most popular Linux distributions, claiming to have at least 10 million users.
Fedora is a binary distribution which uses the RPM Package Manager for its binary package system. The binary packages themselves are in this format, but RPM is also a manager, able to install, remove and manage these files. RPM has been around for a long time and is part of the Linux Standard Base. Many other distributions such as Mandriva and openSUSE use this as their primary package management, while distributions such as Debian and Ubuntu use the Deb package format. Debs themselves are very similar to RPM’s but the programs which manage them are very different.
When you install an application under Linux, it often utilises external libraries to provide functionality. Installing a single application may result in numerous other packages needing to be installed, called dependencies. Back in the dark old days, there was no way to automatically manage the installation of these dependencies and what resulted was known as “dependency hell“. Before you can install a particular package, you need to install a dependency. But when you try to install that dependency, it has dependencies of its own! And so on and on it goes.
To combat this problem, numerous wrappers have been created around the RPM package manager which endeavour to handle this issue safely (and sanely!). Recently, openSUSE developed and released a brand new manager called Zypper, Mandriva uses their own called Urpmi. Fedora on the other hand, has adopted another called Yum, the Yellowdog Updater, Modified. The website states: “Yum 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.”
Fedora 11 has just been released with one of the many cited improvements being an upgrade to version 4.7.0 of rpm. The wiki entry suggests this should greatly improve performance: “Memory consumption in transactions has been reduced dramatically. A testcase of “everything install” of Fedora 10 used to top out at near 1.5GB memory consumption, now the peak with the same package set is just over 300MB. Also gone is the quadratic memory consumption on large number of identical basenames. After the peak during Preparing-stage, heap consumption drops to mere megabytes during the actual transaction.” A second new feature which will greatly assist in the performance of package management on Fedora is the Presto plugin for Yum. Presto is not enabled by default, but once installed it provides support for deltas, a binary difference from an earlier version which reduces the amount of download required.
Fedora 11, known as Leonidas, should offer a much nicer package management experience. While the major improvements are in the area of memory usage, do the newer products offer much in the way of a speed improvement? How does it compare to Cambridge, Fedora 10?
For the purposes of the test, both Fedora 10 Cambridge and Fedora 11 Leonidas were installed on the same computer one after the other, using the installation DVD. The the same partitions were used and although Leonidas ships with ext4 by default, only ext3 was used. Naturally the actual list of packages may not be identical, however both consisted of the default install option which incorporates the GNOME desktop as well as the Office and Productivity packages. Both systems also received the latest updates. These tests are by no means intensive, however they should provide at least some insight into the differences between the two systems for every day usage. Finally, the latest Cambridge updates comes with RPM 4.6.1 and Yum 3.2.21, while Leonidas ships RPM 4.7.0 and Yum 3.2.22.
One of the improvements listed is better memory usage. To see how much of an impact this might be, both systems are installed via the DVD installer and total memory usage is recorded upon completion. This measures memory usage which will include not only the RPM transactions, but also the entire installer (Anaconda) and the live environment. Results are measured using the memory program,
free. Results are shown in kilobytes.
total used free shared buffers
2068488 1989840 78648 0 99956
total used free shared buffers
2057692 1967556 90136 0 138412
Leonidas appears to use around 100MB less memory than Cambridge, but really there is no major difference between the two.
This is a direct RPM command which runs a query on the local package database to reveal which packages are installed on the system. This does not utilize Yum, but does make use of the RPM command itself. Results are measured using the
time command and shows overall time taken, as well as breaking it down to kernel and user space components.
Leonidas is slightly faster, but essentially the speed is the same.
Next: Test 3 — Yum and the Internet