2012-07-01 21:35:54 by chort
Forgive me dear readers, I'm in something of a rage. You see the upcoming release of oclHashcat requires GLIBC 2.14, which for Ubuntu users means an upgrade to 12.04 is necessary. If you're anything like me, you dread the inevitable disruptions of an OS upgrade, but nothing could have prepared me for the horror.
This ordeal has reminded me of why I believe "Linux on the desktop" will never happen. Linux projects simply don't focus talent on the critical problems. When engineers design things, they expect users to act like engineers, and that's only the beginning of the problems.
If anyone from Canonical is reading and wants to prove me wrong, here's what happened when I tried to upgrade from 11.04 to 11.10 to 12.04.
First off, I avoided 11.10 until now because I knew about the Unity UI. I like my desktop exactly how it is, thanks. I don't want to be forced to learn something new, and I strongly suspected major UI changes would break things. I wasn't wrong.
I had previously been launching vino-server from gdm via a hack, because it didn't work with multiple video adapters. That was the first casualty of the upgrade to 11.10. I had ssh'd into my machine to attempt to rebuild the vino library and I thought the issue was fixed, so I rebooted. I waited, and waited, and waited for the machine to come back on the network. Finally I walked down to the basement and found the machine on, but the display black. I switched virtual consoles and was able to get a shell login. I checked the network interfaces and noticed only the loopback adaptor was up. What? I did ifconfig -a and found eth2 was present, but not up. I did ifconfig eth2 up and confirmed the interface was up, and it immediately got an IPv6 address (I'm running rtadvd on the gateway), but no IPv4 address. I found a forum post describing the same problem that said they needed to edit /etc/networking/interfaces, so I did that and rebooted.
Mysteriously the boot screen still said it couldn't configure networking and still ended on a black screen, no X session. I logged in on the console again and saw that yes, the network adaptor did have the correct IPv4 address now. So I went searching again and found this gem. It seems the upgrade process neglected to fix up the expected directories and symlinks (why on earth did they need to change from the typical UNIX locations any way?). My upgrade was DOA until I followed the steps in comment 24 of that bug. Did Canonical simply not test the upgrade process from prior versions? How could such a major change to the directory layout and startup process happen without rigorous testing?
Now I could reboot and get to GDM, but it put me into the infamous Unity UI and the first thing that happened was a bunch of ominous errors puked all over the screen about not being able to support the specified desktop resolution. The errors scrolled down the screen, with no way to acknowledge them or get rid of them. I noticed the taskbar icon for networking had an X through it, yet I could ping the machine. When I clicked the icon to configure the network, it had the previous static network configuration. I changed it to DHCP to match how I had the gateway setup, but the network utility still told me there were no established network connections, yet eth2 was still up and configured. WAT? I tried going into the Unity search area and finding network utilities that way, but they just had a blank page logo with a red X on them and couldn't be configured. HUH? After a bit more poking around, I noticed a very large number of apps had the white page, red X motif
I still couldn't get vino to start so I could at least use VNC to going through the painful process from my comfy couch, so I decided to abandon all attempts to fix 11.10 and just plunge straight ahead to 12.04. I managed to locate the update utility after some blundering around Unity and started the update, answered yes to all the prompts, and was pleased to see it start upgrading packages. I watched the progress bar for a bit, then went back upstairs. After 30 minutes I went back down to check on progress. Hmm, bar hasn't moved. The UI said debconf had installed, but nothing else was happening. Finally I clicked the button to open a terminal view of the process and what to my wondering eyes should appear, but a curses interface telling me I had to restart something or other with an OK button... a button which was TOTALLY HIDDEN from the normal UI with absolutely no indication that any action was required to procede. WHAT. THE. FUCK. I don't know what school of UI design the Canonical upgrade engineers went to, but they must have been asleep during the class on how to prompt users, because that's an absolute fucking FAIL. How can a user acknowledge a prompt they don't even see???
So now I'm sitting here waiting for the "upgrade" to 12.04 to finish so I can fix whatever else was broken. I don't hold out much hope for having my box running before tomorrow, which is a shame since I have VMs on there for my primary DNS and for my email filtering. I've already read reports of "apport" causing havoc on 12.04 and quite a few references on how to restore Gnome Classic. Apparently Unity isn't a smashing success. People have warned me to expect more issues with 12.04, but I have little choice since the vast majority of security tools written for Linux are developed on Ubuntu, or the tutorials are written for Ubuntu. Sure I could run them on a different distro, but I doubt the time saved by avoiding Ubuntu hassles would outweigh the time lost by having to translate tutorials to other OSs and hunt down all the dependency problems on my own.
Sadly, this is exactly what I expect from Linux: Endless hassles and things not working correctly. The only reason I use Linux is because so many tools are written for it, but I have to ask: Why? I switched from Windows to OSX because things Just Worked. I've used OpenBSD for almost a decade because it Just Works. I can't remember a time when an OpenBSD upgrade failed on me when I followed the documentation. Any upgrade issues I ever had were due to missing a step from the documentation. You know why? Because the OpenBSD developers pay attention to details. They expect things to be done to exacting standards, and the documentation is no exception. Apple to a lesser extent follows that.
Linux distributions, on the other hand, seem to be all features and no experience. No one wants to work on being consistent and high-quality. No one wants to work on making sure the documentation exactly matches the implementation. No one wants to test how real users upgrade from version to version to version. Engineers don't mind wiping and reinstalling. Engineers think it's acceptable to need to run some esoteric commands just to get your system working after upgrading something. Engineers love Linux, but the rest of us can't live with it.
And that, is why it will never be "the year of Linux on the desktop."