Author: Andreas Neudecker
There are many reasons why a Linux system should be upgraded frequently, security issues being the most important. While we Linux users don’t experience virus problems very often, there are exploits, root kits, and other such nuisances. Skipped system upgrades are a risk.
Sometimes you simply need that shiny new feature in the latest version of your favourite software package. Or maybe you are one of those geeks who cannot sleep at night if their system is not running the most recent cutting-edge version of everything.
So is there a way to upgrade without dependency problems and the need to resurrect broken third-party packages?
An apt distribution
Approximately three years ago a friend who was using Debian Linux introduced me to the advantages of Debian’s Advanced Package Tool (APT). It handles package dependencies extremely well and relieves you from most problems intrinsic to RPM hell.
By that time I had experienced frequent upgrading problems that were so bad that they usually led to a fresh install of my distribution at the time, SUSE Linux. Installing RPMs that were not part of the distribution usually resulted in failure. For most of them, you would have to hunt for required dependency packages around the Web. Sometimes it would even disable some functionality of the system.
I was more than eager to try out something new, so I started by installing Debian on an old 486 machine. The installation wasn’t easy, but it wasn’t intolerable. It reminded me a lot of my first Linux installation ever, which was an early Slackware version using the 1.2 kernel.
Today I am using Debian on several machines. Since I first installed version 2.2, nicknamed ‘Potato’ after a character in the movie ‘Toy Story,’ I have been frequently upgrading either parts of the system or the whole system to a newer version with very few problems. I perform smaller upgrades frequently on my desktop PC, usually while working at the same time. For major upgrades, especially those involving the X Window System, I leave the GUI and upgrade from the command line. This not required — it is merely the habit of a security fanatic.
I made the switch to Debian 3.0, nicknamed ‘Woody,’ when it was still in the ‘testing’ branch of Debian’s thorough QA system, and repeated this with 3.1, ‘Sarge,’ when I longed for fresh versions of OpenOffice.org, Mozilla, GNOME, and other applications. On occasion I use packages from the ‘unstable’ branch, as well, to get a necessary feature that is not available in a previous version. GAIM and the fantastic SVG drawing tool Inkscape are two examples of ‘unstable’ program versions that I have installed.
With Debian you can even modify the upgrade process to install from a specific branch for specific packages. With a setup mechanism called APT-Pinning you can define packages or package groups that should be installed from a branch other than your default (which again can be ‘stable’, ‘testing,’ or ‘unstable’ at your choice).
I still need to install software that is not in the default package repositories. Often times there is a Debian binary package (*.deb) available for download. You can download it separately, or you can add the project’s package address to the list of package sources and the package will be treated as though it were part of the distribution. If there is no Debian package, I usually succeed by installing an RPM package using the Alien package converter, which automatically transforms a package from one format to another.
In other cases, I simply use the binary installer provided by the company. Examples for this category are Adobe’s Acrobat Reader, Sun’s Java SDK, Macromedia’s Flash player software and plug-in, and RealPlayer. I have compiled from source in a few cases where it seemed worth the hassle. But then I always try to use checkinstall to automatically create a Debian package from the results of the compilation. This eases installation, deinstallation, and upgrading, especially when deploying on multiple systems.
Packages on end
On the whole, it is rarely necessary to resort to such adventurous measures to put some commercial or exotic software on your machine if you are using Debian. ‘Woody,’ the current ‘stable’ distribution, includes more than 8,700 packages, and my current offical snapshot DVDs of ‘Sarge’ have more than 14,800.
Nathan Willis said in his article that one of the reasons for skipping upgrades is the hassle associated with third-party software being broken by system upgrades. So how does Debian fare in this regard?
Third-party software that comes as a binary installer may be broken by an upgrade if the distribution’s upgrade replaces libraries with newer versions and the third-party software does not work with these. The easy solution is to use statically linked versions of the software, where possible. Opera is an example.
When Java programs that are in Debian are upgraded, they may require a newer version of Java than the one installed on your system. If you are using Sun’s Java Runtime Environment this involves a huge download (more than 20MB) and manual installation from a binary installer. If you have no time for this and do not need any special features of the new program version, there is an easier solution: you can put packages on hold in Debian’s package database to exclude them from automatic upgrades. You decide when to upgrade this one the next time.
From RPM hell to APT paradise?
My suggestion to Nathan Willis and others sick of upgrading hassles is to try out some Debian-based distribution. The next time an upgrade ends with an unusable system and you need to reinstall anyway would be the right time. Use Debian itself, if you don’t mind the installation process. Installation has become a lot smoother a lot smoother with the soon-to-be-‘stable’ branch ‘Sarge’ and the new installer provided with it.
If you prefer an end user-compatible installation with a colourful GUI installer and few clicks or keystrokes, there are a number of commercial derivatives of Debian, including Libranet, Linspire, Ubuntu Linux, Mepis, and Xandros. There are several Debian-based LiveCDs that will work out of the box, with no installation required. You probably know about Knoppix, but there is also a variant called Gnoppix (using GNOME instead of KDE) which has a GUI installer for installation to your hard drive. Last but not least, there is the new UserLinux project, which aims to generate a community-based desktop operating system based on Debian and suitable for business use.
Most derivatives usually base their distributions not on the ‘stable’ branch of Debian, but on ‘testing,’ the branch where fresh versions go after they have passed basic testing in ‘unstable.’ If you want to use ‘stable,’ you can still have recent versions of important software using what Debian Backports has to offer.
Even if you do not want to use a different distribution there may be a solution for you: use APT with your RPM-based system. Connectiva has ported APT for this use and is using it with its distribution. Fresh RPMs has an overview; WebMo has an article on Creating a Red Hat Apt Repository.
If you’re unhappy with the your ability to upgrade an RPM-based distro, you have alternatives. For me, Debian’s package dependency handling and smooth upgrades make it a better choice.
Andreas Neudecker has been earning a living by maintaining Windows networks for several years. Today he is a happy Linux convert and eagerly helps others migrate too. He is currently looking for writing job in IT or natural sciences.