Appendix D. Alan's quickstart guide to Debian for programmers.

Table of Contents

D.1. The apt system
D.2. update-alternatives

[ fromfile: debian-tips.xml id: debian-tips ]

Abstract

This article is a summary of steps I take to set up a new Debian desktop for development. It is useful for the developer who is new to the Debian Linux desktop environment and wants to take advantage of the apt system.

After trying out a number of different Linux distributions, I am currently installing using an Xfce[80] Debian testing distribution, which I find ideal for my purposes: C++ / Java / Python / Qt / KDE development.

[Important]Question

Why Debian?

  1. There is a ridiculously huge number of packages available, many which are often hard to find from other distributions. This means that you can grab already-compiled binary packages of almost every library instead of building your own from source.

  2. Debian testing seems to contain reasonably up-to-date KDE packages.

  3. Many KDE/Qt developers are deep in Debian.

  4. Debian distributions offer very powerful package management system known as apt, which is quite straightforward to use, and easy to fix when you break it.

[Important]Question

Why KDE instead of Gnome?

There are a number of reasons I like using KDE over Gnome. Here is a brief list.

This is not to say that I am a purist, and only use KDE applications. OpenOffice, Pidgin, and Mozilla are mature programs that have features I find missing from their KDE counterparts: koffice, kopete, and konqueror, so I find myself still using these applications. If two versions exist and one is built on KDE and the other on Gtk+, I'll make sure I try both and decide which I like better.

Recommended Debian-KDE distros.

The distributions below all have important things in common: they are bootable, which means you can run them without installing anything onto your hard drive, but you can also install them, for a full Debian-based [82] installation.

  1. I used to use the Debian installer of Knoppix on every machine I used. It's a liveCD which also has a Debian installer. It comes in CD and DVD formats. I find the DVD installs a lot more software than I need, so I prefer using the CD versions and installing the rest of my packages from the network. However, the DVD installs kernel sources which can come in handy if you need to recompile your kernel. Knoppix is configured for “testing” by default. At the time of writing (December 2007), Knoppix 5.1 is the latest available version, and it should only be used on hardware that is a year older than the distro's release date (January 2007). For newer hardware, you should either use a recent Kubuntu, or a pure Debian installer. I look forward the next release of Knoppix, which cuts down significantly on my installation/setup time.

  2. Kubuntu (KDE-based Ubuntu) is another, Debian-like KDE distribution I have tried a few times. I find there are too many differences in how it works from a pure Debian install, and I get annoyed and eventually switch back. It supports the apt package system like other Debian systems, but does not use the same packages - (k)ubuntu packages are differently-named and sometimes customized significantly. Mixing packages from Kubuntu and Debian is not recommended.

  3. For the adventurous, here is a link to the Debian download page, where you can get a “netinst” iso image, burn it to CD, boot from it and install to your hard drive. Don't do this unless your video card is standard VESA, or you've compiled the kernel and installed X11 drivers before.

[Important]Question

Unstable? Testing? That sounds scary. I'd rather run something stable!

Many people new to Debian are intimidated by the use of the word “unstable” to describe any distribution of Linux. Since the other two choices are “testing” and “stable” it's natural people would try the stable first. Unfortunately, the versions of most applications offered in stable are fairly old, and some of your favorite packages may not be available. It is preferable to use newer software for a desktop/development system. “testing” is a nice compromise between unstable and stable.

stable (lenny) is the latest stable release. The versions available are tested thoroughly.

The testing distribution is a distro which contains versions that will not end up in stable, but will be in the next major release.

The “unstable” distribution (Sid), contains more recent versions than testing, but depending on the time you decide to upgrade your system, you may find yourself with broken packages that need to be fixed. Sid is only recommended when you are quite comfortable using the apt system.



[80] A free software desktop environment for *nix. The acronym has lost its original connections and now is used to refer to a somewhat standardized development framework for open-source applications.

[81] Best of all, you can use KDE file dialogs in GTK applications too, thanks to kgtk.

[82] they are not pure Debian because they contain additional packages and customizations