simont: A picture of me in 2016 (Default)
simont ([personal profile] simont) wrote2005-06-09 09:44 am

Well, that was a faff and a half

I upgraded my home Linux box to Debian 3.1 last night.

For a start, the upgrade process helpfully decided to uninstall about 75 packages that must have conflicted with new libraries or something (of course it didn't tell me why they had to be uninstalled, what a silly suggestion). Little things I probably wasn't using in the first place, such as Firefox, xpdf, gv, and my print server. Of course, updated packages of all of those are available in Debian 3.1, but did it stop to think I might like them upgraded rather than removed? Did it bobbins.

As if that wasn't enough, it then proceeded to uninstall them in the wrong order. First it took out scrollkeeper, whatever that is (I looked at the package description and was left almost none the wiser); then it tried to uninstall a couple of other packages whose post-remove scripts turned out to depend on scrollkeeper, so the entire process stalled at that point and had no idea how to continue. Eventually I had to go grubbing around /var, find the post-remove scripts and hack the scrollkeeper lines out of them. It also didn't help that dpkg helpfully avoided showing me any meaningful error message such as ‘scrollkeeper: command not found’, and instead I had to content myself with ‘post-remove script returned status 127’. I eventually had to strace dpkg to work out what the problem was. (And I can hear Mr Prosser in my head now saying ‘That's the display department’.)

So. Having fixed the post-remove scripts, the install (or rather the bulk uninstall) was ready to continue. Next headache was the rather feeble checking for modified configuration files. If I've actually modified a file in /etc, I do appreciate the Debian upgrade process telling me so and offering to let me keep the old version, update to the new version, look at the differences between them or escape to a shell and sort it out. That's fine. But for goodness' sake I could have done without being given this choice for five times as many configuration files I hadn't modified as for ones I had! I don't know what was wrong with its detection, but it was definitely screwy.

Any Debian aficionados reading this chronicle of pain might have guessed by now that I was using apt-get dist-upgrade rather than the choice of serious power users, dselect. Every so often during the process I did wonder whether the apt detractors had a point, and attempted to use dselect to sort out the weird dependency mazes instead. I gave up after I discovered that I couldn't get it to explain to me why apt was doing what it was doing, since when I tried to make dselect do the same thing it reported a completely different tangle of strange dependencies and conflicts, but just as impenetrable.

Eventually, after much continued annoyance, I was finally left back at a root prompt. Time to see if I can reinstall the ‘helpfully’ removed Firefox. But no: it apparently can't install mozilla-firefox because it depends on $library ‘which is not going to be installed’. Huh? Normally this is precisely the nice thing about apt-get: if the package you asked for depends on five obscure libraries you haven't got, it hunts them down for you and installs them as well. Now, suddenly, it's going all innocent and saying ‘not my problem, guv, you didn't ask for that library’. So I tried explicitly installing those libraries too, in the fond hope that that might get me a marginally more helpful error message that told me why it was reluctant to install them. But no; instead it suddenly decided to cooperate after all, uninstalled another 25 almost unrelated packages, installed the libraries I wanted, and then installed Firefox. Hooray! Ish.

So now I had something roughly resembling a working system, only every so often I'd trip over an xpdf– or gv-shaped hole in it. In nearly all such cases, a quick apt-get install sorted the problem out without complaint: no mysterious package conflicts, no strange library incompatibilities, no problem at all. Leaving me wondering why on earth it had been so important to uninstall those packages at the beginning of the process!

I'll skip over the entirely separate headache that is GNOME 2, because it isn't really Debian's fault that GNOME 2 is like GNOME 1 only with all the useful bits removed. Debian thoughtfully put up a warning box telling me that my GNOME 1 configuration couldn't be converted because GNOME 2 couldn't do most of the things GNOME 1 could do. As it happened I knew this already (from experience with my work RedHat box), so I was more or less expecting pain in that area anyway.

Still, got there in the end. Now I have a mostly working Debian 3.1 system; only the fonts have all gone screwy. Whatever fonts Mozilla is using by default are horribly ugly, with lots of vertical strokes that obviously should be the same width coming out at different widths. My guess is that they're scalable fonts being rendered without useful hinting, perhaps because somebody expected them to be antialiased so didn't bother (in which case, I need to work out how to turn on antialiasing). Worse than that, though, the Pango automatic font selection in my own programs (i.e. GTK 2 Puzzles) is now returning fixed whenever I request a sans-serif font, irrespective of the size I asked for and also irrespective of the fact that fixed is monospaced rather than sans! For goodness' sake, if it had to fixate on a single font for everything it could at least have returned variable.

It's possible that I'm missing some vital font management package which was helpfully not installed for me; but I fear I'm not going to find out without grubbing through the Pango source to see how it's supposed to be working.

Finally … one of the reasons I was keen to upgrade to Debian 3.1 was because I expected it to have up-to-date libraries and compilers, thus allowing me to compile reasonably modern software. One particular thing I was interested to have a go with was ‘Rosegarden’, a piece of music software I'd been hearing good things about. And indeed, 3.1 is capable of compiling Rosegarden, and better still there's a pre-built package of it in unstable (which right now means I can just manually install it because all its library dependencies are satisfied by stable). But to add insult to injury, when I try to run Rosegarden, it forks off a second process which tries to open a weird sequencer thing in /dev, immediately dies because that device doesn't exist on my system, and brilliantly the main Rosegarden process sits there and waits for the second process to finish starting up, having not noticed that it's long since dead and never going to do so! This one's probably my own fault for installing a package out of unstable, I admit, but it did rather leave me wondering whether I'd got any benefit from all that pain.

I remember upgrading to Debian some time around 1998, because of its surprising tendency to Just Work and to get things right which other distributions got wrong. Either I had a very unlucky and unusual experience last night, or somewhere between then and now it has lost its way. Badly.

[identity profile] mjg59.livejournal.com 2005-06-09 08:54 am (UTC)(link)
The release notes specifically tell you to use aptitude for the upgrade, rather than apt-get.

[identity profile] mjg59.livejournal.com 2005-06-09 09:23 am (UTC)(link)
Not that I want to imply that the Debian press officer is crap or anything, but, uh, well.
emperor: (Default)

[personal profile] emperor 2005-06-09 09:44 am (UTC)(link)
Hm. I clicked on "latest stable release" and there I was. "To upgrade from an older version of Debian...".

I'm not sure how to re-structure the front page to improve this.
sparrowsion: (cat5)

[personal profile] sparrowsion 2005-06-09 09:49 am (UTC)(link)
There was a link to the release notes (and hence, after much burrowing as you say, to the relevant instructions—it took me a couple of goes to convince myself that I was barking up the right tree in trying to find them) in the release announcement (which is linked from the debian.org front page, and I picked up via debain-announce). I've not risked any of my machines yet, but seeing as the work box was installed as sarge-as-testing I'm not anticipating too many problems with that one at least….