Every two years or so, Debian puts out a new “stable” release. This is my favorite distribution because of the minimal number of bugs and the huge software repositories and the powerful package manager. Right now, Lenny (5.0) is the stable release, and Squeeze (6.0) is in testing. Sometime “soon” Squeeze will get frozen, which means the regular flow of package migration will stop, and from then on it will only get bug and security fixes through a method of back-porting. Once the number of “release critical” bugs is reduced to an acceptable level (which used to mean 0, more recently it means 50 or so), then Squeeze will be released as the new stable version.
As a desktop user, I find that Debian is usually ready enough for me sometime before it’s released. This time around, I’ve been running a Squeeze demo on my laptop (a Thinkpad T41) every few months, and as of May it’s been my main install. In fact, to me it’s better than Lenny now. (Perhaps this is why Ubuntu just released a new LTS version? They depend on having a stable-ish Debian moment in order to do LTS, it seems.) Here’s my review of Squeeze so far:
Update: as of around 6/10 or so, I had a really slow suspend/hibernate/resume (for about 60 seconds after resume, I would get nothing, but then it would wake up). This morning 7/4/10 I figured out I was missing some firmware for my mobile radeon hardware. I did “apt-get install firmware-linux-nonfree” and was cured. Probably I could have figured it out sooner if I payed more attention to messages.
I hate reviews that bore the reader with installation screenshots. Installation has been a pretty easy task for any Linux distro of the last 5 years, so it’s a bit irrelevant. Here’s a quick technical overview of stuff I like to do:
- Apt-cacher is great for anyone who has a home-server and a less-than-lightning-fast connection. I find this especially handy for a distro that’s still in testing. To enable my cache in the installer, I add “mirror/http/proxy=http://192.168.0.1:3142/” by pressing TAB on the boot option I want.
- I prefer the netinstall CD. In combination with the apt-cacher, this off-loads the packages from the CD to cacher (which is good because the packages change regularly in testing, I can do multiple installations without multiple downloads and the cache stays up-to-date).
- The installer includes options to install LXDE or KDE instead of Gnome as the desktop environment. I initially installed with LXDE, but switched to XFCE later on, as detailed below.
I have enough RAM to support whatever desktop environment I choose, but I decided to work on LXDE first, partly because I’m expecting to need it when I do my home-server upgrade to Squeeze.
Immediately I found my first bug: right after logging into LXDE I got a window that says “Your session only lasted less than 10 seconds. …” As long as I do not click OK, I can continue using LXDE. Clicking OK is now the way to log out.
After installing to LXDE, I added packages (gnome-power-manager, nm-applet, synaptic, gedit, openvpn, ksensors, vncviewer) to make it more laptop friendly. One thing I began to notice is that programs I installed didn’t always show up in the LXDE menus.
LXDE doesn’t work so great on a laptop, because the non-LXDE applets that I wanted are not persistent. If I log out and log back in, they are gone.
At this point I gave Debian’s LXDE setup a failing grade overall and moved on.
I installed Gnome using “tasksel install gnome-desktop” as root.
Although Gnome did a much better job functionally than LXDE, I have to complain about several major annoyances:
- Default panels on top and bottom of the screen (wasting my 15.4” laptop screen).
- The panel menus “Applications Places System” use up way too much of the top panel (no wonder Gnome needs two panels). This becomes a much bigger annoyance after I drop the bottom panel and move the window list and desktop picker to the top panel.
- For some reason Gnome takes it upon itself to populate my home folder with a bunch of empty folders labelled “Music Public Templates” etc… I find this incredibly insulting when Windows does it, and doubly insulting when a Linux desktop does it. I don’t need you to tell me where to put my files.
- As described below, Gnome is a huge drag on boot/startup time.
Overall I wish that Debian would switch their default desktop away from Gnome. I appreciate that the installer makes it easier than ever for the end-user to switch to another desktop, but the problem is that the default always has the fewest bugs and the least hassle, because it recieves more testing and developer focus. Even though I prefer other desktops I generally end up with Gnome with Debian.
I want to take a second to preempt some counterarguments I’ve heard on this subject. “You can change that stuff if with the following voodoo…” “No one uses the defaults for more than like 2 seconds.” My favorite: “If you don’t like it, switch to Windows.” My point here is that a default creates a barrier for every user who doesn’t like it. There isn’t a good reason not to pick the best settings as the defaults, and I’m convinced from years of experience that Gnome is not the best.
I installed XFCE with “tasksel install xfce-desktop”.
XFCE basically did everything right out of the box, which puts it above the other desktops in my book. It also has the fastest load time of all the desktops that were laptop friendly (see below).
The one bug with XFCE is when I login I get a “wicd cannot connect to dbus” error, which is strange because my user is, in fact, part of the netdev group. Nevertheless, I intend to use network-manager instead of wicd, so I did “apt-get remove wicd” and was cured.
I expect XFCE to be fairly close to Gnome in terms of bugs, because of the fact that they share so much under the hood. XFCE uses the same GUI toolkit (GTK), and it even interoperates with Gnome’s applets. In fact, since I already had the network-manager-gnome package installed and configured under Gnome, it automatically showed up and loaded in XFCE. Gnome’s network manager and battery monitor applets seem to be an exception in that regard; for most Gnome applets I need to use Xfapplet (“apt-get install xfapplet”) as a kind of wrapper in order to run them in XFCE. But in any case, it’s very convenient for laptop use to be able to use Gnome applets in XFCE. For me, a desktop manager’s overall usefulness primarily comes from the applets that can be run under it, which makes XFCE just about functionally equivalent to Gnome in my book.
I installed KDE with “tasksel install kde-desktop”.
I have to say that KDE has a much more impressive default appearance than any of the other desktops.
However, KDE came with several headaches:
- The nework-manager-kde crashes every time I try to open an OpenVPN connection. I apt-get removed the KDE version and started using the Gnome version, but…
- I can’t seem to get the Gnome network manager to be persistent under KDE (same problem as LXDE).
- KDE also had the “wicd cannot connect to dbus” error.
It seems that I’m bound to a GTK environment of some sort because of the network magager’s quirks.
I do want to mention that, bugs asside, I tend to like KDE applets better than Gnome applets, as being better polished and more useful. Ksensors is the most striking example; Gnome’s hardware sensors are worthless in the dock, and so are XFCE’s. If you have a laptop with 5+ sensors you will know what I’m talking about.
Improvements over Lenny
At this point I need to say I’ve noticed several significant improvements over Lenny, especially from the standpoint of a laptop user.
- Once in a while, Lenny would fail to wake up from suspend or hibernate. So far, Squeeze has a spotless record on my laptop.
- Every time I woke up Lenny from suspend or hibernate, it would take the network-manager applet a while (30 seconds up to 2 minutes) to reconnect to my WiFi. Thankfully, the network-manager in Squeeze reconnects pretty close to instantly.
- Battery life: many Linux distros I’ve tried prior to 2010, including Lenny, have drawn more power out of my T41 than I believe they ought to, leading to rather crummy battery life. With Ubuntu 8.0.4 I found that replacing the regular kernel with the Ubuntu’s “UME” kernel fixed the problem. With Lenny, I found that recompiling the kernel to disable SMP fixed the problem. Using my Kill-a-Watt at the AC plug, my laptop draws 15-17W with the old stock kernels (even in “laptop mode”), and 11-12W with the old UME or SMP-disabled kernels (for testing, I make sure the battery is not charging, the system is idle, and the display back-light is turned all the way down). However, Squeeze draws 11-12W with the stock kernel, so I don’t need to make any kernel adjustments to keep my battery life in line. I lack the expertise to explain this phenomenon, especially since Linux has been “tickless” since before Ubuntu 8.0.4 or Debian Lenny. Nevertheless, the Linux kernel developers must have done a good job on something in the last two years or so. (Just for reference, the T41’s stock OS - Windows XP - draws 10-11 W.)
There is one thing Squeeze does worse, although it pains me to point it out:
Despite the hard work of a lot of developers, Squeeze boots slower than Lenny overall. Actually, the “boot” time, from GRUB to login, has dropped by 13 seconds from 44 to 31 (on my machine), which is a marked improvement. The problem is that meanwhile Gnome has gone from bad to twice as bad, i.e. from 24 to 42 seconds, an increase of 18 seconds (measured from login to UI being “ready”), for an overall boot increase of 5 seconds. Add this to my list of grievances with Gnome.
Actually, I should say that Squeeze boots faster than Lenny, as long as you can stay away from Gnome. KDE loads in 15 seconds, and XFCE loads in about 10 seconds. Overall XFCE is now my desktop of choice. Upgrading from Lenny/Gnome to Squeeze/XFCE dropped my total boot and startup time from 68 to 41 seconds, where 13 seconds comes from the improved Linux boot scripts, and 14 seconds comes from dropping Gnome.
Aside from the issues I had with LXDE and KDE, a few other relatively minor bugs cropped up:
- Although the default is a “trunk” kernel, there are no “trunk” kernel headers, i.e. I think there ought to be a package called linux-headers-2.6.32-trunk or similar. In order to use VirtualBox, for example, I rebooted to the secondary kernel before “m-a a-i virtualbox-ose” could succeed, and I have to boot to that kernel whenever I want to run VirtualBox. I’m not really sure what’s going on here. Update: I’ve read that the “trunk” kernel was never meant to be released into the wild. I removed it and was cured.
- There used to be some extra pdf apps, i.e. xpdf and kpdf, which I can’t seem to find anymore… Update: xpdf has returned, and kpdf is now called okular.
- On my second install (I have two Linux installations on my laptop, one for a backup), I had a problem with the OpenVPN extension for network-manager. I uninstalled and reinstalled network-manager, and that fixed the problem. When I did the first installation, I did it completely clean, but for the second install, I kept the /home/ directory. For all I know maybe that had something to do with the problem.
Upgrading from Lenny
I made a half-hearted and probably bungled attempt to upgrade directly from Lenny to Squeeze, by simply switching the repositories from “lenny” to “squeeze” and doing “apt-get update; apt-get dist-upgrade”… except in the middle I restarted the apt-cacher on the server, which stopped the upgrade, at which point I remembered I needed to stop the hold I had put on my kernels, and I also tried doing some other operations to get rid of unnecessary packages. The result was some kind of jam in apt-get, where I couldn’t dist-upgrade because of the kernel and udev versions (?), and “apt-get -f install” wouldn’t fix it. I gave up. Reinstalling is a relatively painless alternative for a laptop user.
Of course, before I make a switch to a new distro, I need to test out my basic set of applications. I’m an electronics enthusiast as well as an office-type user, so here’s a list of things I exercised, all of which passed right away:
- Wine (LTSPICE) - Update 8/19/10: I realized the installation went smoothly because I apparently had installed some version of Internet Exploder in my wine directory (carried over from a long time ago, I have no memory of installing IE). If I attempt to do a fresh install of LTspiceIV (dated 8/4/10) in an unadulterated Wine 1.0.1, the installer fails with a complaint “Could not open uncompression file /tmp2”. This is definitely a regression; an older Wine I have sitting around (1.0), the same LTspiceIV.exe installer runs without any errors.
- Google Chrome
Although Debian has not yet released Squeeze or even frozen it, the system is in great shape already and is functionally superior to Lenny in my testing, and I have already made my switch. The improvements should be attributed to the migrations of underlying system components (in my case, especially the kernel), which is a consequence of the fact that Lenny doesn’t migrate anywhere in it’s frozen state. (Freezing is a good thing and a bad thing.)
Even though I’m jumping the gun on my upgrades, I still believe the release work that the Debian teams do is extremely valuable. Their drive for quality improves the bug state of the entire open-source world, and they deserve praise for getting Squeeze into position for a stable release.
Unfortunately, in direct opposition to the hard work of developers working on boot time, Gnome has single-handedly messed up the (desktop user’s) overall boot speed, in addition to it’s other annoying features. I wish that Debian would drop Gnome from the default desktop position for their next release. KDE in particular appears to be quite superior, although it needs to get the focus of being in the default spot in order for it to recieve the detail work that I feel it needs for this distro.
Update: I maintain my conclusion, but laptop/desktop users may be advised to enable the non-free repo and install the firmware-linux package (which will include firmware-linux-free and firmware-linux-nonfree).