Review: Debian as a desktop system

Debian is well respected as a stable server distribution, and most of the reviews focus on aspects appropriate to server deployments. This article covers Debian on the desktop. It is not a step by step tutorial, but focuses on the highlights of the recent Etch release.

An important difference between Debian
Etch and its previous releases is its ease of use as a desktop
operating system. Ubuntu has been in the limelight recently, but it’s
important to remember that Ubuntu is based on Debian, and every once in
a while it’s important to return to a project’s roots. Debian was the
first distribution to have a social contract with its users and its
full name is Debian GNU/Linux, a sign of respect and acknowledgment
towards the GNU foundation.

I’ve been running Etch on my laptop very successfully and I’m happy
to report that previous pain points, such as wireless networking, “just
work” on my Dell laptop. In addition to this new polish, a graphical
installer and support for the AMD64 architecture are both new to Debian
Etch. Also included are many favorite free software Java packages such
as Ant and Tomcat into the main package repositories.

Debian has the perception of being a “geek” distribution, but I
would make the opposite argument. It is in fact inclusive, taking great
pride in the number of hardware architectures it supports.

Debian GNU/Linux was the first distribution to include a social contract

Etch contains reasonably up to date core packages. Here are some of the more notable ones:

  • Xorg 7
  • GNOME 2.14 with bits from 2.16
  • IceWeasel 2.x and IceDove 1.x
  • OpenOffice.org 2
Iceweasel is Firefox

Iceweasel is a re-branded Mozilla Firefox browser. This was done by
Debian in order to comply with a demand from the Mozilla foundation
that they either drop the Firefox name and media (icons, etc.) or
comply with policies Debian found unacceptable.

Installation

I won’t cover every screen of the installation, only a small sample
to demonstrate the new installer. I’ll then cover what I consider to be
the most important steps of the installation, selecting and configuring
the apt mirrors.

The beginning of the installation process is more or less similar to
that of Sarge with two main exceptions: the installer (which is new)
and the default kernel (now the 2.6 kernel, where you previously had to
enter linux26 at the boot prompt to install the newer kernel).

When the boot loader prompts you (figure 1), enter installgui and hit Enter to start the graphical installation. Or, if you prefer to work the older text based installer, simply hit Enter.

Figure 1: Etch Boot Manager
Figure 1: Etch Boot Manager

Here are the installation steps in rough order. Items in parenthesis
are actions the installer performs automatically. I have also provided
screenshots as indicated in the steps to provide a more detailed view.

  1. Choose Language
  2. Choose Country or Territory
  3. Choose Keymap
  4. (Hardware Auto detection, Network Auto Configuration via DHCP…etc…)
  5. Enter Host name
  6. Enter domain name
  7. (Disk partition auto detection)
  8. Partition Disks, note the only way to setup encrypted LVM it use the GUI
  9. Select Physical Disk
  10. Partitioning Scheme
  11. Partition confirmation
  12. Write to disk
  13. (Writing partitions to disk)
  14. Select Time Zone
  15. Set root password
  16. Setup user account
  17. (Installation of base system)
  18. Configure the package manager, use a network mirror (figure 2)
  19. Select the Debian Archive mirror country (figure 3)
  20. Select the Debian Archive mirror within that country
  21. Configure HTTP proxy information
  22. Configure popularity-contest
  23. Software Select (figure 4)
  24. (Installs selected software packages)
  25. Select Resolution for xserver-xorg configuration (figure 5)
  26. Install GRUB as default boot loader
  27. Installation complete
Figure 2: Etch Network Mirror Confirmation. The first of several screens that configure the package management utility apt is the one confirming whether or not you choose to use a network mirror to download and install packages from. Select “yes”
Figure 2: Etch Network Mirror Confirmation. The first of several screens that configure the package management utility apt is the one confirming whether or not you choose to use a network mirror to download and install packages from. Select “yes”
Figure 3: Etch Network Mirror Country Selection. This screen prompts you to select the Debian Mirror archive that is closest to you. In my case, I chose “United States”
Figure 3: Etch Network Mirror Country Selection. This screen
prompts you to select the Debian Mirror archive that is closest to you.
In my case, I chose “United States”
Figure 4: Etch Boot Manager. The software selection screen offers you a selection of packages to choose from. I’m running Etch on a laptop so I elected to install the “Desktop”, “Laptop” and “Standard system”. This was enough to install a reasonable desktop system, which I could then tweak by installing other packages. Choose whatever you feel is appropriate to your current setup
Figure 4: Etch Boot Manager. The software selection screen offers
you a selection of packages to choose from. I’m running Etch on a
laptop so I elected to install the “Desktop”, “Laptop” and “Standard
system”. This was enough to install a reasonable desktop system, which
I could then tweak by installing other packages. Choose whatever you
feel is appropriate to your current setup
Figure 5: The Etch installer does a good job of auto-detecting your hardware—simply select your monitor resolution and hit Enter!
Figure 5: The Etch installer does a good job of auto-detecting your hardware—simply select your monitor resolution and hit Enter!

The desktop

The Etch installer does a good job of auto-configuring Xorg and
picking sane defaults. After the installation was complete, I was
presented with a GNOME login screen. Out of the box, I discovered Etch
would recognize an iPod when plugged in, detect my network printer
almost automatically and allow me to do pretty much everything I needed
to do. There were a few extra packages I needed to install, but
Synaptic and apt are a mean pair and make this a breeze.

I really like this zen-like approach to setting up a new system.
During the software selection step of the installer I simply checked
that I wanted both the “desktop” and “laptop” and voila, I had a fully
functioning Debian desktop.

Minutes into my first boot, I hooked up my iPod via a USB cable and
Etch detected it, mounted it, made it available under the “Computer”
and launched the default application associated with it (figure 6).
This is on par with other alleged “plug and play” systems. While going
into detail about how to manage iPods on Etch is out of the scope of
this article, I highly recommend reading “Managing your iPod without iTunes”
by Jon Peck. I will say I ended up using Amarok to manage my iPod after
finding Banshee unusable, but that is a problem with Banshee and not
Debian specific.

Figure 6: iPod, plug and play, Debian style
Figure 6: iPod, plug and play, Debian style

In my opinion this was a pretty solid start. There were still a few
things missing—some applications that I’ve been meaning to play around
with. In previous incarnations of Debian I would simply crack open a
shell, possibly do an apt-cache search if I didn’t remember the package name, and then apt-get install
it. That was until I discovered that beyond simply installing software,
Synaptic is a great tool for discovering new software I didn’t know
about.

Synaptic & apt

The Synaptic front end to apt has become the de facto standard, included by default in both Debian Etch and Debian derivatives such as Ubuntu.

apt is Debian’s package management tool. There are a
number of front ends to it, namely Synaptic which I am about to cover.
It is obviously possible to perform a wide number of operations with
the apt-* tools such as apt-get and apt-cache search,
but Synaptic is really the way to go. I’m only going to cover a few
common operations that should be enough to get you on your way
installing packages.

The first thing to do is clean up the package resource list. These are the remote software repositories that apt
searches for new packages and updates for currently installed packages.
By default the installer includes the CDROM used to install Debian in
the sources list, something I’ve always found annoying. The second
thing to do is add some extra repositories, such as contrib and non-free. These are repositories that are not included in the general release due to licensing restrictions.

Start by launching Synaptic via the “Desktop” drop down in the top
GNOME bar, then selecting “Administration” then selecting “Synaptic
Package Manager”. Once it’s fired up you should see something like what
is shown in figure 7. The first thing to do, as mentioned above is
configure how apt looks for new packages. Inside Synaptic select the “Settings” drop down, and then select “Repositories”.

Figure 7: Synaptic Package Manager
Figure 7: Synaptic Package Manager

This will open the software preferences editor, which is a nice graphical way of configuring the contents of /etc/apt/sources.list.
I selected the “CDROM” entry and deleted it, and then selected both
“Binary” and “Source” blocks and clicked “Edit” where I added the contrib and non-free repositories. I needed the non-free
repository because the Intel driver for my wireless chip set is
released under a “non-free” license. After this installing my wireless
drivers was a simple apt-get command, though I obviously was connected via a wired connection. That should be all that’s needed for most people.

Figure 8: apt-get/Sources configuration
Figure 8: apt-get/Sources configuration

If you do find you need more or simply want to explore apt directly instead, the main apt configuration file is /etc/apt/sources.list. It configures which apt repositories to use, which version (Etch, Sarge… etc.) and which groups (main, contrib, non-free). It should look something like the following:

deb http://mirrors.kernel.org/debian/ etch main contrib non-free
deb-src http://mirrors.kernel.org/debian/ etch main contrib non-free

deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free

Here are some of the common actions you’ll use with apt:

  • apt-cache search python (Searches repositories for packages with python)
  • apt-get install vim (Installs vim)
  • apt-get remove vim (Removes vim)
  • apt-get clean (Deletes downloaded .deb files)
  • apt-get -t unstable apache2-utils (*) (Installs apache2-utils from unstable repository)
  • dpkg -l (Lists all installed packages)
  • dpkg -i foo.deb (Installs .deb package you manually downloaded)
  • dpkg -L apache2-utils (Lists files owned by package, i.e. those installed by apache2-utils)

(*) Requires a line in /etc/apt/sources.list describing unstable target i.e.:

deb http://mirrors.kernel.org/debian/ unstable contrib non-free

After configuring the repositories I returned to Synaptic to install
a few applications. I selected the “Graphics” group and browsed for
Blender—an application I’ve been trying to learn to use in my spare
time. I simply selected it, and hit the apply button. Synaptic figured
out the dependencies and prompted me to mark them for installation as
seen below.

Figure 9: Installing Blender via Synaptic, as easy as clicking yes
Figure 9: Installing Blender via Synaptic, as easy as clicking yes

That’s about as simple as it gets, and from there the sky is the
limit. My next step was to install the driver for my wireless card,
which I briefly cover next.

Wireless networking done right

Though not specifically a Debian innovation, the inclusion, support and integration of the GNOME NetworkManager, along with HAL and Dbus,
are part of what makes Debian Etch suitable for the desktop. The GNOME
Network Manager describes itself as “pain free” networking, which I’ve
found to be very true.

The GNOME NetworkManager makes networking pain free

The Dell laptop I run Etch on comes with the common ipw3945 wireless
chipset. The first time I tried getting wireless going it was a huge
mess. I had to compile the kernel module, install the daemon, download
the firmware separately and place it in the correct location—all this
just to recognize the device.

I then had to go about configuring it for use. The two wireless
networks I used the most, one at home and the other at work, both used
WPA encryption, which means I then had to install wpa-supplicant, and configure it an a variety of ways. I opted to stick everything in /etc/network/interfaces since that’s what I knew best.

This meant I was commenting and uncommenting different blocks depending on which network I was currently supposed to be on. There probably was an easier way that I was just ignorant of, but still…

GNOME’s Network Manager saved me from all of that. On top of that, I
find my wireless connection never drops, as it frequently does when I’m
running Windows.

The trick, and one that initially caught me off guard, was to remove all the previous wireless configuration from /etc/network/interfaces,
and let the NetworkManager auto-detect the wireless networks. I had
become so accustomed to tweaking the interfaces file, that I actually
messed up the network manager by continuing to tweak it. This really
takes the “desktop” aspects of Debian to the next level, something as
simple as wireless network, which has plagued me for so long, is now
resolved.

Once the driver was installed, I simply selected my wireless network from the GNOME Network Manager in figure 10.

Figure 10: Wireless network selection with the GNOME Network Manager
Figure 10: Wireless network selection with the GNOME Network Manager

It then prompted me for the WPA passphrase that I configured to
access the network (figure 11). I entered it and—voila!—wireless
networking done right.

Figure 11: Wireless passphrase
Figure 11: Wireless passphrase

Printing also done right

I have an HP Photosmart 2610 and getting it to work was, well painless. Another FSM article, Printing with Ubuntu, by Mark Rais, applies directly to Etch as well and is pretty much all that was required. I used Synaptic to install hpoj
(the HP drivers), which prompted me for various settings during the
installation and were easy enough. Then I simply clicked on
“Desktop→Administration→Printing→New Printer” there was an option to
use a pre-detected printer and my network printer was indeed listed. I
selected it and hit “Yes” a couple of times, and voila, I was printing
from Etch. The ease of this setup may be an artifact of the printer
model I have being well supported so your mileage may vary. So far so
good for a desktop experience.


Automatix

Automatix is a package that gained popularity by providing
post-installation polish to Ubuntu by installing applications that
weren’t included in the repositories. It can be used to install many
proprietary applications users from other operating systems may be used
to having such as Macromedia Flash, and Real Player, as well as codecs
for Windows media files. As of April 2007, it also runs on Debian Etch,
and as such I’m going to briefly cover some of the packages Automatix
can install that will spruce up your Debian Desktop.

Automatix can be downloaded from the GetAutomatix.com website.

Automatix works by using Debian’s own package manager, apt,
to download packages from either the official Debian repositories, or
other third party repositories and when applicable configures the
system appropriately.

After the installation you should be able to start “Automatix via
Applications→System Tools→Automatix”. It will prompt you with a warning
stating that it is against the law to install the DVD decryption codecs
in certain countries. Obviously readers should obey their local laws.
After hitting “Yes” you should be presented with the following screen.

Figure 12: Automatix landing
Figure 12: Automatix landing

The options most relevant to any desktop system are under “Codecs
and Plugins” and “Media Players and Editors”. In the codecs section, I
would recommend installing everything you are legally able to, and
under players the most interesting applications I would recommend are:
Songbird, Democracy Player, and Real Player.

Songbird is a particularly interesting application, based on
XulRunner the runtime environment that powers Firefox and Thunderbird.

Some people make take offense to proprietary applications on a
GNU/Linux desktop system—but I’m a pragmatist, and I like my media.

Things to look forward to in Debian

Etch is the first Debian release to natively support the AMD64
platform and take a more inclusive stance towards free software Java
packages. It will be interesting to see how this evolves.

Another interesting development is Ian Murdock, joining Sun
Microsystems, and the announcement of project “Indiana”. I think it’s
highly likely we are going to see Debian’s package management system
included in the next Solaris release (Solaris 11).

Conclusion

I feel that Debian Etch is as good on the desktop as it is on the
server. It has a long rich history, a strong community, is amazingly
stable and is a great fit for both my servers and my laptop. I urge
everyone to give it a go on the desktop.

Notes and resources

The installer

Printing in Ubuntu—published in Free Software Magazine

Ian Murdock joins Sun—article

Interview with Murdock

Thanks to Source Web Site: freesoftwaremagazine.com

License

(C) Yousef Ourabi 2007

Permission
is granted to copy, distribute and/or modify this document under the
terms of the GNU General Public License, Version 2 or any later version
published by the Free Software Foundation. A copy of the license is
available at http://www.gnu.org/copyleft/gpl.html.

Biography

Yousef Ourabi: Yousef Ourabi is a developer in the San Francisco bay area. He is currently working at the startup he recently founded, Zero-Analog.
Zero-Analog is currently developing an enterprise application, however,
one of its stated goals is "to increase the rate of open source
adoption in companies of all sizes, across all industries". Zero-Analog
also offers consulting services, all based around open source tools,
frameworks and applications.
He can be reached at: yourabi@zero-analog.com.

StumbleUponDiggTwitterFacebookRedditLinkedInEmail