Minority Opinions

Not everyone can be mainstream, after all.

Flavors of Linux Upgrades

leave a comment »

I’ve experimented with several Linux distributions.  Inevitably, I end up wanting something a little newer.  Whether it’s a new library version for a program I want to compile, or a new browser version when online services start sniping at me, or a security fix for an essential service, something always needs to be upgraded.  The difficulty of doing so has varied dramatically.

My first Linux machine started with Red Hat, but quickly turned into Linux From Scratch.  I don’t really recall what prompted that, except a serious desire to learn the system and make the most of some older hardware.  After following the instructions and playing with it for a year, I then decided to experiment with some serious customization, which involved doing the whole process all over again.  This time, I kept most of the commands in a set of scripts that probably wouldn’t entirely work for an automated build.  That’s probably why I haven’t attempted it a third time.

The good news is that certain of those scripts make it easy to upgrade individual packages from source, any time I want a new version.  I don’t have to wait for a distribution maintainer to package it for me.  Sometimes there are subtle differences that the scripts don’t handle well, and other times I need to upgrade a dependency first, but things tend to work.  The bad news is that new packages frequently require manual dependency hunting and script tweaks.  I also haven’t ever bothered to compile X, which wipes out a huge range of useful programs.

Since then, I’ve stuck with official distributions.  Another piece of obsolete hardware briefly hosted Ubuntu, but the constant hard drive crunching and general slowness prompted a switch to Debian Lenny.  Since then, I’ve considered upgrading it to Squeeze, but the upgrade process has scared me off.  I’ll probably get around to it, but it’s mostly lying fallow at the moment.

Ubuntu, in contrast, has served me well on my work machines.  At one point, after Cygwin completely died, I decided that Windows simply wasn’t serving my needs; fortunately, I had an understanding supervisor and a sufficiently powerful machine.  Upgrading that machine has been fantastically smooth; one went from Hardy to Intrepid and Jaunty without a hitch, and another from Karmic to Lucid, Maverick, and now Natty with barely any problems.  The main key has been to wait for a few months after the release date; in one notable case, a video card driver would have caused serious issues had I upgraded earlier; as it was, a bug report had already pointed me to the right version I needed to install.

That’s not to say that each upgrade has been entirely satisfactory.  Sure, it’s frequently nice to get the newer program versions; Python in particular has had some exciting syntax additions that have been slow to arrive.  However, there are sometimes little new bugs or annoyances, like NTP drifting horribly, or Unity becoming the default.

Perhaps that’s why I experimented with PCLinuxOS.  It’s a rolling distribution, more like Debian sid than stable, so I wouldn’t expect the same large distribution changes.  Instead, I’m asked to keep up with a series of smaller upgrades.  In practice, I’m not that great at upgrading on a schedule; I prefer to do so when shutting down anyway (or after a power outage), but tend to stay logged in for months at a time.  Then there was the period where I couldn’t upgrade or install anything because the main repository was getting moved to new hardware, which didn’t exactly inspire confidence in my new system.  Fortunately, that has been resolved.

These days, PCLOS feels more up-to-date than Ubuntu, but slightly less polished.  It’s the little things like colordiff or aptitude that make all the difference for me.  Perhaps I’m biased toward what I really use daily, but I was expecting just a bit more out of something that was recommended as a distribution for and by programmers.

Meanwhile, my marvelous companion’s laptop had been running Linux Mint, because it was billed as just a bit more polished and user-friendly than Ubuntu.  To be fair, the menu truly is, particularly with its Favorites panel.  Upgrades, on the other hand, are not.  The recommended upgrade path is to back up and reinstall.  In the end, that’s exactly what I had to do.

Part of the problem was letting it go so long on one distro that the underlying Ubuntu repositories had been taken down.  Both Ubuntu and Mint had jumped ahead four versions, and I didn’t even know how to start stepping through the latter.  I wasn’t sure it would work, even if I got the APT repositories correct.  I also had the hubris and impatience to attempt a single leap.

Unfortunately, I also had the foresight to do some research first, and found a page listing a careful method for a similar upgrade:  After editing the repository list, it recommended upgrading the kernel and udev, then restarting before upgrading everything else.  That, unfortunately, left me with an unbootable system.  I’m not sure whether upgrading everything right away would have worked any better, but I wish I had tried.  Particularly given that the udev upgrade brought in a few dozen other packages anyway.

So, I fixed it with a clean install into a new partition, followed by restoring the home directory and re-installing several desired packages.  Even that didn’t go so well, given that the gnome panel was completely blank on login; perhaps I should have kept some of the .gconf files from the new home directory instead of the old.  Compared with a couple of hours watching Ubuntu upgrade itself, this full-day manual backup/research/upgrade/fail/install/restore/fiddle process was extremely frustrating.

On the other hand, it convinced me to back up the home directory to another machine, so maybe it wasn’t a complete loss.


Written by eswald

4 Oct 2011 at 10:15 pm

Posted in Linux, Technology

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s