For the uninitiated, Debian is the world’s second-oldest surviving GNU/Linux distribution, released only a few months after Slackware’s first release. It’s also got a bit of romance attached to it — the name Debian derives from the names of Debian’s founder, Ian Murdock and his then-girlfriend (later wife, and now ex-wife), Debra Lynn.
Debian is one of the two major “parent” distributions today (the other being Fedora), which means that most other distributions are built on top of either Debian or Fedora. Debian’s claims to fame include its revolutionary package-management system consisting of DEB packages, Aptitude and Synaptic; its unmatched stability and speed; and the fact that it’s the parent to the world’s top two Linux distributions (by popularity): Ubuntu and Linux Mint.
Debian 6.0 took 24 months to cook. With all that time on the burner, there had to be some major changes. So what are they? Well, for starters, Debian 6 is the first Debian release to feature the KDE Plasma Desktop, as the Debian guys choose to call KDE4. The Debian 6 software package versions almost mirror Ubuntu’s 10.04 LTS release, with KDE 4.4.5, GNOME 2.30, Kernel 2.6.32 and OpenOffice.org 3.2.1 making it to the release.
Debian 6.0 now officially supports Sun’s (now Oracle’s) ZFS filesystem. Yes, you read that right — ZFS, including booting from it. How? Well, Debian, apart from now using the Linux kernel, also uses the FreeBSD kernel. There are two “technology preview” architectures called kfreebsd-i386 and kfreebsd-amd64, which feature the FreeBSD kernel running underneath Debian’s standard GNU userland. This affords users the best of both worlds, but a couple of kinks do remain, and some advanced functions in the desktop environments don’t exactly work well. This also means that it’s the first time ever that a Debian distro has been rolled out with major bugs still unresolved.
Debian 6 makes two more major system changes, and both concern the internal design on the OS. Debian has switched to the free Linux kernel, which means all non-free firmware is now missing from the distribution, severely crippling hardware support. However, all the non-free firmware is still available; it’s just been moved to the non-free repository.
This segregation offers the best of both worlds: purists can now run a completely free Linux system, and those who need the non-free firmware (which is most people) can just enable the non-free repo, and install the firmware. Debian has also switched to a new dependency-based init system (Ubuntu uses an event-based init system), which enables faster boots, with a more structured service startup pattern.
The artwork team has also done wonders with this release. The new scheme, called SpaceFun (see Figure 1), is based on a cartoonish representation of a rocket leaving Earth and heading towards Saturn. This comprehensive user experience even includes a Plymouth theme. Yes, Debian now supports KMS and Plymouth too, but the latter isn’t installed by default.
On the Mozilla front, all is definitely not well, however. Apparently, Mozilla didn’t allow Debian to muck around with their branding and logos for newer versions of Firefox. Thus, Debian actually has to make do with Firefox 3.5 and Thunderbird 3.0. Not an issue for me, since I use neither — I use Google Chrome, and yes, Chromium is now an official Debian package. And on that note, Debian now includes Ubuntu’s Software Center (version 2, which is in 10.04 Lucid Lynx LTS, and not version 3, which is in 10.10 Maverick Meerkat), which makes software installation that much easier (see Figure 2).
Finally, Debian 6 marks the first-ever release of Debian with EGlibC instead of GLibC. There’s a genuine reason for this replacement — apparently, GLibC’s developer is not too friendly (to put it mildly), and there have been lots of developmental issues with it. EGlibC isn’t a fork of GLibC, it’s more like an unofficial branch with a lot of patches. It is binary-compatible with GLibC, and in any case, Ubuntu’s been using it since Jaunty.
Well, that’s about all I’m willing to give you as an introduction. It’s time to get our hands dirty and actually try out Debian 6, to see if it’s worth its salt.
Installing Debian 6
Because of Debian’s new “feature” of excluding non-free firmware from the installation media, installation gets interesting. You have a couple of options:
- If your machine does not include any hardware that demands non-free firmware, go ahead and download one of the many DVD, CD, Blu-Ray or USB images of the Debian-Installer Disk Set, and give it a spin.
- If your machine requires a piece of non-free firmware, you have two options. You can use an official CD and place a firmware tarball on a USB drive, which you can use as an “F6 Disk” (somewhat like when you’re installing Windows XP) to supply the firmware to the installer. Alternatively, you can download a specifically crafted NetInstall CD, which includes non-free firmware.
I decided to give it a spin in a VMWare virtual machine, and so downloaded a 47 MB BizCard CD image, which would fetch all the packages dynamically off the Internet (in contrast to NetInstall, which includes the base system packages on the CD). To obtain installer images, use the following links:
If you do use the official CDs with the firmware tarball, use a USB drive with a single partition either formatted with FAT32 or ext3, and place the firmware tarball in the root of the drive. Keep it attached while installing, and Debian-Installer (see Figure 3) will automatically detect the tarball and use it.
Back to my story. I fired up the VM, booting from the BizCard CD. Once at the boot menu, I opted for the Graphical Install. Remarkably, I was staring at the first X-based screen no more than 3 seconds later.
Debian is known for its extremely long installation procedure (something to the tune of 23-26 steps, depending on the installation method). While it’s pretty long, it’s not at all complex. In fact, it’s very simple and self-explanatory, and anyone even vaguely familiar with Linux should be able to install the system. I will, therefore, spare you an installation how-to, and speak more about the installer itself.
The first thing that will strike you when the installer boots is the artwork. SpaceFun now flaunts itself from the installer itself. I selected British English language, US key-map and Indian locale settings, which automatically showed me only Indian mirrors in the mirror selection screen. I opted to use IIT Kharagpur’s mirror since it’s the closest to me, but IIT Madras’ mirror should be faster. The third and last option is Debian’s CDN, which fetches from many load-balanced servers simultaneously. I didn’t use it, since there’s a possibility of package conflicts between different mirrors.
I’d given the VM a 20 GB dedicated SCSI hard drive, so I let Debian do automatic partitioning. I was surprised to note that Debian still uses the ext3 filesystem. I’d recommend using ext4 — the performance gains are significant. And ext4 is well supported in kernel 2.6.32; no data-loss bugs to be scared about.
The installation took about five hours at my end, out of which all but 15 minutes was spent downloading packages over a 512 KBps Internet connection. And then… kaboom! Apparently, the Internet connection had packed up for a couple of seconds, preventing a couple of packages from downloading. Rather than retrying the download, Debian-Installer silently failed, leading to a botched installation.
I redownloaded CD 1 of the 52-CD set and reran the install using that, but the installer still took three hours to download updated packages, this time from IIT Madras’ mirror.
Apart from the pretty staple GNOME 2.30 desktop with OpenOffice.org 3.2.1 (see Figure 4), nothing much is quite worth mentioning, since everything is so stock and commonplace. Debian still refuses to enable LCD sub-pixel rendering patches, even though the FreeType patent expired aeons ago. Otherwise, the system is pretty responsive.
Something that frustrates me is the lack of up-to-date Web browsers. Chromium is at version 6, Firefox (no, their IceWeasel crap) is at version 3.5.12 (because of feuds with Mozilla, apparently), and IceDove (Thunderbird) is at 3.0.11 (3.1.7 is available in experimental mode, as of this writing). I had to download Google Chrome directly from its website to get an up-to-date tool to browse the Web. This is unacceptable in the world of GNU/Linux. You should not need to manually download a Web browser — c’mon, who does that?
I wasn’t able to test out Compiz because: a) it isn’t installed by default, and I’m a very lazy person; and b) I had trouble getting 3D acceleration in VMWare Linux guests to work. This is a driver issue solved by the new KMS-capable vmwgfx driver — which, again, isn’t included in Debian Squeeze, because it’s too darned new! However, I did enable Metacity’s compositing, and the drop-shadows were pleasing to the eye. I also went ahead and installed Docky, to test if translucency was working with Metacity compositing — it was (see Figure 5).
One bizarre bug I faced concerns enabling sub-pixel rendering. I right-clicked the desktop, went into Change Desktop Background, switched to the Fonts tab, and selected the Sub-pixel Rendering radio button. At once the font size jumped to something like 20 pixels, but strangely, the font selectors all showed 10 pixels. I manually changed all font sizes to 6, and got 9-pixel fonts. I was pretty baffled by this behaviour.
Now Debian is light enough to work very well on older hardware, but it does include LXDE and XFCE for people who’d like them. Something worth mentioning is that LXDE is at version 0.5.0, which, although admittedly 13 months old, is still the latest available! XFCE is at version 4.6.2 (4.8 was released a couple of weeks ago).
I did have some trouble adjusting to Debian, having been used to Ubuntu for such a long time. For starters, Debian does not include support for indicators, and its reliance on Aptitude-based tasks for installing bulk packages at once, instead of Ubuntu’s meta-package approach, left me floundering for a while.
For example, Ubuntu’s desktop meta-package is called
ubuntu-desktop, and I can install it with a simple
apt-get install ubuntu-desktop. Debian has no such meta-package, and requires the installation of two “tasks”,
gnome-desktop. Note that these are tasks, and
apt-get will fail to install these with “No Package Found” errors. You’ll have to use Aptitude for these.
It’s not a bug; it’s actually a more elegant solution, since removing the task will remove all packages too, unlike removing the meta-package, where all the actual packages remain, making no difference to the installation. Still, it does take a bit of getting used to.
On the upside, the sheer amount of software that Debian’s default repositories hold never ceases to amaze. Even though NetworkManager is installed by default, Wicd is available, as is the Linux Container system LXC, and the cluster framework Corosync. In fact, between Lenny and Squeeze, 10,000 additional packages have been added. Even Docky is available in the default repos!
Talking about repos, note that the repositories for the next release of Debian (7.0 Wheezy) have already been defined. However, don’t get too excited — even though it’s installable and fully functional, the actual release is another two years away.
And last, but not the least: Remmina replaces Vinagre and RDesktop, giving you one unified remote-desktop client. Remmina currently supports VNC, RDP, XDMCP, NX and SSH connections, so that’s a huge improvement over Vinagre. The default desktop also includes some sort of a time management tool, which is something I didn’t bother trying out.
The server end
Debian 6.0 is a perfectly capable server system. In fact, it was meant to be a server system right from the start. The server end is also where the kfreebsd variants make themselves useful. Since without the desktop environments, the sources of bugs are done away with, the FreeBSD kernel should actually be a better choice for servers than Linux.
So can Debian 6.0 run Drupal 7? I’m using Drupal 7 as a benchmark because it’s just been released, and the requirements are pretty high for servers, especially since MySQL versions earlier than 5.0.15 aren’t supported. Well, Apache 2.2.16 and MySQL 5.1.49, with PHP 5.3.3, takes care of Drupal 7. Unfortunately, MariaDB packages aren’t available yet, but official DEBs from MariaDB’s website are, which can be installed.
Debian actually includes three different versions of Python: 2.5.5 and 2.6.6, with the latter being the default, while 3.1.3 is also included. I’m scratching my head as to what sin the 2.7 branch committed, leading to it being left out…
As for virtualisation support, though KVM has been ported to FreeBSD, I couldn’t find the related package (
qemu-kvm) for the kfreebsd releases.
Moving on, Samba 3.5.6 makes it to the release. Samba 4 packages are available in Experimental (as well as Sid). Apache Tomcat version 6.0.18 and Nagios 3.2.3 complete the rest of the tool-kit. Oh, and Perl is at 5.10 (5.12 is available with Experimental).
Lastly, AppArmor isn’t included in Debian 6, and the only way to somehow have it is by compiling a custom 2.6.36 kernel. SELinux is available, but not installed or enabled by default.
Experimental and Backports
Debian is Debian because of its strict policy of including only stable and known-to-work packages. This means the packages are always somewhat old. While, most of the time, stability is the priority for Debian users, sometimes you just need that new version of a package, and it just doesn’t appear in this Debian release. Debian doesn’t have things like Ubuntu’s PPAs, but it does have two officially sanctioned repositories that deliver updated packages: Backports and Experimental.
When a package is deemed to be mature and stable enough in the development cycle of the upcoming release (or Sid, if there is no upcoming release yet), Debian tries to backport the package to the current release. If it works well — meaning that no more than just a few dependencies need to be backported along with the package in question (and also, those few dependencies don’t include any core packages, such as EGlibC or GTK+) — then the backport is made available via the Debian Backports repository.
There are a few caveats to using Backports. Debian plays it safe, so you can only add the Backports repository, not enable it. Hang on — if you can’t enable the repo, how on earth do you use packages from it? Well, Backports is implemented as another release, so you’ll have to ask Apt or Aptitude to target the
squeeze-backports release to download packages from it. System policy prevents Debian from automatically fetching updates to every single package on the system from Backports, but once you install something from Backports, you’ll receive updates to those packages all right.
Experimental is for daredevils. When a package first enters the Debian Project, its entry point is Experimental. While it’s in Experimental, it’s stabilised to a point where it can enter Sid, and then be backported to other releases. The thing is, you don’t want to be using packages from Experimental if you can help it. Experimental packages are dangerous to the point where they can cause massive data loss. However, some packages such as LibreOffice (suddenly everyone’s obsession) are currently (as of this writing) in Experimental only, so there’s only one way of getting such packages.
Experimental is implemented in a fashion that’s similar to Backports, but with additional safeguards — you have to manually update packages from Experimental; even updates will not be delivered automatically.
So how do you add these two repos? Well, start by creating an empty file in
/etc/apt/sources.list.d (you can create one file for each repo, or put both repos in a single file). By the way, in Squeeze, Apt now supports splitting your
sources.list file into many parts stored in the
sources.list.d directory. The
sources.list file still exists, though, and is also parsed, right at the beginning.
For Experimental, fill in the following lines:
deb http://ftp.debian.org/debian experimental main deb-src http://ftp.debian.org/debian experimental main
For Backports, use the lines given below:
deb http://backports.debian.org/debian-backports squeeze-backports main deb-src http://backports.debian.org/debian-backports squeeze-backports main
Now update your package metadata by running apt-get update, and install packages by targeting the release, such as apt-get -t experimental install packagename, or apt-get -t squeeze-backports install packagename.
If you want to automatically track updates from Experimental, you’ll have to do it package by package, using a technique known as Apt-pinning. Edit the
/etc/apt/preferences file, and add the following for every package you want to track:
Package: packagename Pin: release a=experimental Pin-Priority: 800
This isn’t necessary for Backports, since once you install a package from there, updates are automatically tracked.
Debian 6 was in many ways an important and path-breaking release of Debian, but is it really relevant today? Debian as a desktop system isn’t really something you’d like to use — it’s too old. Debian for servers? Well, it does the job extremely well, but Ubuntu Server, while providing LTS releases every two years (which coincides with Debian’s new release cycle), has better support from applications, built-in support for EC2 clouds, and commercial support from Canonical (with stuff like Landscape, which even Red Hat cannot boast of).
Moreover, day by day, Debian is getting more purist in its approach. For a server OS, it beats me why SELinux or AppArmor wasn’t included, and the fact remains that even if I use it as a desktop, it still needs a bit of tinkering around with configuration files in
/etc to fully realise the potential of the system. Although I do agree that porting in Software Center from Ubuntu was a very nice touch, and it does make managing repositories and installing software a lot easier.
There’s only one thing I can say about Debian 6: it may have been released just yesterday, but it got outdated 6 months ago. So unless you have a reason for using Debian, both on the server and desktop front, I’d recommend Ubuntu. On the other hand, if you do have that reason for using Debian, go ahead and upgrade, because you will be blown away by the amount of polish that has gone into this release. Debian 6 is indeed a worthy upgrade to Debian 5, but not really to other distros.