What sucks, who sucks and you suck

A Worthwhile Fedora Upgrade

2006-06-09

Finally, a Fedora upgrade that Just Works … it’s called CentOS.

Still suffering the aftershocks of a disruptive update to Fedora Core 5 on my own PC (currently, either the X server or the entire system will lock up after a sufficient number of days has lapsed), I was still left with my Glamorous Research Assistant’s PC to sort out. This has been running FC2 more or less happily for some time now, but FC2 is no longer supported by either the Fedora project or, to any appreciable extent, by the Legacy project. The GRA does not like change; she expects her PC to Just Work, the same as it did yesterday. The GRA’s PC is also the fileserver on my network, so a bad upgrade would have a knock-on impact on my own box (and I already had enough instability to cope with on that score). I really didn’t fancy turning it into another smoking FC5 corpse.

After weighing up the options, I downloaded CentOS 4.3. CentOS is a freely-available rebuild of the open source parts of Red Hat Enterprise Linux (RHEL) so, although both are ultimately derived from Fedora, they are better-tested, more stable and supported for longer (CentOS 4 support, at least for security issues, should go until 2012). For the record, the other options were:

Fedora Core: While Fedora was still a usable desktop OS in its early releases, lately it has become too bleeding edge to offer much assurance. Besides, I badly wanted to get off the Fedora upgrade treadmill of six monthly releases (actually, FC5 took nine and is the worst yet)!

Ubuntu: A lot of good notices and reports from users, but financially it seems to be bankrolled by a single rich donor who has seen one of those films where the protagonist has to lose a fortune as quickly as possible. What happens when the legacy dries up? (True, CentOS is in a worse state financially but at least they’re only repackaging someone else’s code instead of maintaining their own and they don’t have any huge cash injections to encourage complacency.) Also, Debian-based and thus not of my world.

In currency terms, CentOS 4.3 is somewhere between FC2 and FC3. Hence most of the FC2 RPMs will be updated if you perform an OS upgrade, being slightly later versions. A few, such as the kernel, need special attention. Here’s what I did:

Take a backup, and also commit copies of important system files to CVS.

Perform a CentOS upgrade using the “upgradeany” boot option.

On reboot, the GRUB bootloader did not appear to have been reinstalled on the MBR (possibly due to the missing kernel update). I rebooted from the CentOS DVD in rescue mode and mounted the filesystems. I had to install GRUB by copying a grub-install script from a later version on another system, as the version in CentOS doesn’t understand /boot partitions that are located on RAID metadevices.

While in rescue mode, I also manually removed the fedora-release RPM and installed the centos-release RPM in its place (probably easier to do this in the next step).

Reboot successfully in single user mode and mount the CentOS DVD. Force a manual installation of the CentOS kernel RPM and check the grub.conf file.

After a reboot into the new CentOS kernel, I removed the old Fedora kernel RPMs as they prevent the CentOS one being updated due to their later version numbers.

Using my own centos-rpmcheck script, I searched for packages that hadn’t been updated by the CentOS upgrade (because RPMs with later version numbers had been installed while running FC2). I performed a forced update of each of these. I also removed obsoleted packages. Afterwards, I rebooted again to confirm things still worked.

Run a YUM update (and - sigh - reboot again for the newest kernel).

Add the kbsingh Fedora Extras rebuild and sangrah Livna rebuild repositories to YUM and update again to fix the remaining packages. (These aren’t of any proven long-term stability but better than nothing; Dag Wieer’s RPMforge repository is an alternative.)

Comment from my GRA: “Hey, it’s changed - it’s faster!” (probably due to the later KDE version in CentOS, since little else has incremented).

Following such a positive experience, it’s tempting to “downgrade” my FC5 box to CentOS too, but unfortunately I’m already used to later versions of heavily-used desktop programs like the GIMP, OpenOffice and Firefox in Fedora, and these haven’t made it to RHEL/CentOS yet. And by the time they do, Fedora will be far in front again. What I really need is something with a stable core like CentOS, that doesn’t play “kernel fix of the day”, but with a bang up to date user space. The alternative is to install CentOS but do my own rebuilds of the Fedora RPMs for the packages that matter to me. However, this risks entering library dependency hell (e.g. latest GIMP requires latest GTK, which then requires updating all the GNOME packages, etc.). It would also be a bunch of extra work. There is a “CentOS Plus” repository for packages that may override official versions, but tracking this automatically is an all-or-nothing proposition; you couldn’t, say, choose to have Firefox 1.5 from Plus but stick with the distro PHP 4. This is a limitation of package managers like YUM and APT.