Flowers for Debian

Originally published in Linux User and Developer #35 (Dec 2003/Jan 2004). License

Remember that bit in Lord of the Rings where top elf lady Galadriel - the one who lived in the treehouse and got Frodo to stare into her birdbath - imagines with how great she might be if she were allowed to use the ring? In the movies, just thinking about it makes her face go all blue and CGI-y; smoke comes out of her pointy ears and she starts barking at nearby hobbits about how great she is and HOW ALL WILL WORSHIP HER BEAUTY AND DESPAIR.

Having managed to install Debian myself, I can confirm that such megalomania is entirely justified. It's a heady time, having got a working Debian setup. Partly it's because of their new, ring-like powers one has the fresh sysadmin of the powerful and stable Linux install created by smart, motivated volunteers. Partly, it's because installing Debian is so fantastically difficult that post-install, you're as chock full of endorphins as a triple marathon runner. I installed Debian, and I only chewed off two of limbs!

Also you're superintelligent - just juggling all the variables and technical details you've needed to get this thing to work is so mentally invigorating, most Debian users' IQs have, by necessity, doubled or tripled during the process. Most of that intelligence is occupied understanding monitor horizontal sync frequencies, it is true, but we can't all be Leonard Da Vinci, can we? No.

After a while, the super-smarts wear off and one returns to being a normal - albeit Linux-using - mortal. It's a sort of "Flowers for Algernon" scenario. A tragedy, because - as others have noted before me - the only real way anyone can be smart enough to install Debian is to have already installed it. It's a temporal paradox.

It's also the case that about half-way thorugh the install, you realise that there are a load of questions you need to answer (How much swapspace do you want? Which version of emacs? If you were a crayon, what colour would you be?), that you can only really answer once you've finished installing the damn thing.

The traditional solution to this problem is what we computer scientists call a backtracking algorithm. You install Debian up until you reach a question which requires knowledge of future events, randomly pick an answer, continue to install until you realise you've got it wrong, scream, abandon the install, chew off limb, increment limb-lost coutner, pull yourself together, reset and start again. For someone installing Debian for the first time, one can do this, oh eighteen or nineteen times. Maybe more: one tends to lose track of time, space, and reasons to live by this point.

Eventually you manage it. You turn blue and smokey in victory, and - most importantly - you never install Debian again.

This is possible, because, once installed, Debian is (all joking aside) fantastic at never screwing up. Unlike Windows, where re-installing is a semi-annual event, or even Redhat, where at some point RPM attrition will bit-rot your system into chaos, Debian is rock solid. I've upgraded Debian boxes for years from Linux 2.2 running a console to Linux 2.6 running Gnome without a glitch. You need never go back.

Which is why standard Debian installs are such a nightmare. Debian is a community-built system. That community rarely uses the installer, because they're already using Debian. Moreover the community never wants to think about the install process again. It was the worst period of their goddamn lives. Just mentioning that time brings it out in community-wide hives. So few people want to work on improving the installer. In the open source philosophy, it's equivalent to not so much scratching an itch as idly fingering an old wound.

This weekend, for various reasons, I am returning to my old battlefields. I am re-installing Debian.

But this time, I have determined to defeat the temporal paradoxes involved.

Here's my thinking: Moments after the future Debian install, I will have Galadriel-powers of omnipotence. My temporarily heightened consciousness will comprehend, in its fullness, how to do a Debian install - also, supreme knowledge all physical laws of time and space.

So, before I even start, I have set up an IRC chat session - through time - with my omniscient future self.

This is actually easier than it sounds. I don't know all the details - obviously, my super-intelligent future self is doing most of the heavy-lifting here. I can say there's tunnelling over "ssh" involved. I basically open up a connection the DHCP lease that I estimate my future Debian system will be using, stick in a bunch of negative values into /proc/sys/net/ipv4/ and try not to think too hard about the issues.

So far, technically, it works just fine. However, in practical terms, it's been less than ideal. Here's a typical sesion:

You cannot be "danny". Someone else is using that nick.
/nick presentdanny
You are known as presentdanny.
/join #timetunnel
#timetunnel -  @danny presentdanny
<presentdanny> hi future me. i wonder if you could help me. i'm trying to find
out what settings i should use for this laptops /etc/X11/XF86Config-4 mouse
<danny> have you read the manpage
<presentdanny> um yes
<danny> read it again
danny is away

As you can see, future, Debian-using Danny is far too busy to be dealing with clueless newbies like his younger self.

Obviously, I'm not a hyper-intelligent uberentity myself (yet), but this does seem a little self-defeating. The more my future self refuses to answer my polite questions on IRC, the more statistically unlikely it is that he will even exist on this timeline. I can tell this, because every time he says RTFM, the lag on the IRC network gets worse.

Anyway, it's now 3AM. I'm still stuck on which kernel modules to install to get my WiFi card to work. Futureself is acting like a Galadriel-level arse, and packets to this increasingly improbably future are dropping like crazy.

The thing is, I know that the Debian core teams are working on a far better easy-to-use installer (with hardware detection and everything) which should be out really soon - in Debian terms, within the next year or eight.

So I have a request. Could somebody from that future telnet back in time onto my IRC channel, and DCC me the installer? Cheers!

I'll report on how I get on in last month's issue.