Choosing a Debian distribution

This FAQ helps in choosing the proper Debian distribution and possible questions that might be arising during the process. It does not deal with "why you should choose Debian" but rather "which distribution of Debian". Which Debian distribution (stable/testing/unstable) is better for me?

The answer is a bit complicated. It really depends on what you intend to do. One solution would be to ask a friend who runs Debian. But that does not mean that you cannot make an independent decision. In fact, you should be able to decide once you complete reading this FAQ.

If security or stability are at all important for you : install stable. period. This is the most preferred way.

If you are a new user installing to a desktop machine, start with stable. Some of the software is quite old, but it's the least buggy environment to work in. You can easily switch to the more modern unstable once you are a little more confident.

If you are a desktop user with some experience in Linux and does not mind facing the odd bug now and then, use unstable. It has all the latest and greatest software, and bugs are usually fixed swiftly.

If you are running a server, especially one that has strong requirements, install stable. This is by far the strongest and safest choice.

The following questions (hopefully) provide more detail on these choices. After reading this whole FAQ, if you still could not make a decision, stick with the stable distribution.

You asked me to install stable, but in stable so and so hardware is not detected/working. What should I do?

Try to google around and see if someone else is able to get it working in stable. Most of the hardware should work fine with stable. But if you have some state-of-the-art, cutting edge hardware, it might not work with stable. If this is the case, you might want to install/upgrade to unstable.

For laptops, is a very good website to see if someone else is able to get it to work under Linux. The website is not specific to Debian, but is nevertheless a tremendous resource. I am not aware of any such website for desktops.

Another option would be to ask in the debian-user mailing list by sending an email to debian-user@lists.debian.org . Messages can be posted to the list even without subscribing. The archives can be read through . Information regarding subscribing to the list can be found at the location of archives. I strongly encourage to post your questions on the mailing-list than on . The mailing-list messages are archived, so solution to your problem can help others with the same issue.

Will there be different different versions of packages in different distributions?

Yes. Unstable has the most recent (latest) versions. But the packages in unstable are not well tested and might have bugs.

On the other hand, stable contains old versions of packages. But this package is well tested and is less likely to have any bugs.

The packages in testing fall between these two extremes.

For example, The last time I updated this document, the different versions of the apt package in the various distributions are as follows stable --- 0.5.28.6 testing --- 0.5.28.6 unstable --- 0.6.38

Man! The stable distributions really contains outdated packages. Just look at kde, gnome, XFree86 or even the kernel. They are very old. Why is it so?

Yes. You are in fact correct. Stable usually contains old versions of packages. But they have been tested in and out. One can confidently say that the packages do not have any bugs, security holes etc., in them. The packages in stable integrate seamlessly with other stable packages. These characteristics are very important for production servers which have to work 24 hours a day, 7 days a week.

On the other hand, packages in testing or unstable can have hidden bugs, security holes etc., Moreover, some packages in testing and unstable might not be working as intended. Usually people working on a single desktop prefer having the latest and most modern set of packages. Unstable is the solution for this group of people.

As you can see, stability and novelty are two opposing ends of the spectrum. If stability is required - install stable distribution. If you want to work with the latest packages, then install unstable.

If I were to decide to change to another distribution, Can I do that?

It is a one way process. You can go from stable --> testing --> unstable. But the reverse direction is not "possible". So better be sure if you are planning to install/upgrade to unstable.

Actually, if you are an expert and if you are willing to spend some time and if you are real careful and if you know what you are doing, then it might be possible to go from unstable to testing and then to stable. The installer scripts are not designed to do that. So in the process, your configuration files might be lost and .... OK! so far so good. Could you tell me whether to install testing or unstable?

This is a rather subjective issue. There is no perfect answer but only a "wise guess" could be made while deciding between unstable and testing. My personal order of preference is Stable, Unstable and Testing. The issue is like this:

Stable is rock solid. It does not break.

Testing breaks less often than Unstable. But when it breaks, it takes a long time for things to get rectified. Sometimes this could be days and it could be months at times. But in unstable things get rectified within couple of days.

But there are times when tracking testing would be beneficial as opposed to unstable. I encountered one such situation due to the gcc transition from gcc3 to gcc4. I was trying to install labplot package on a machine tracking unstable and it could not be installed in unstable as some of its dependencies have undergone gcc4 transition and some have not. But the package in testing is installable on a testing machine as the gcc4 transitioned packages have not "trickled down" to testing.

You are talking about testing being broken. What do you mean by that?

Sometimes, a package might not be installable through apt-get. Sometimes, a package might not be available at all. Sometimes, a package installs but does not behave in the proper way.

When these things happen, the distribution is said to be broken.

Why is it that testing could be broken for months? Wont the fixes introduced in unstable flow directly down into testing?

The bug fixes and improvements introduced in unstable distribution trickle down to testing after a certain number of days. Let's say this threshold is 10 days. The packages in unstable go into testing only when there are no RC-bugs reported against them. If there is a RC-bug filed against a package in unstable, it will not go into testing after the 10 days. The idea is that, if the package has any problems, it would be discovered by people using unstable and will be fixed before it enters testing. This keeps the testing in an usable state for most period of the time. Overall a brilliant concept, if you ask me. But things are not so simple. Consider the following situation.

Situation:

Imagine you are interested in package XYZ. Let's assume that on June 10, the version in testing is XYZ-3.6 and in unstable it is XYZ-3.7 After 10 days, XYZ-3.7 from unstable migrates into testing. So on June 20, both testing and unstable have XYZ-3.7 in their repositories. Let's say, The user of testing distribution sees that a new XYZ package is available and updates his XYZ-3.6 to XYZ-3.7 Now on June 25, someone using testing or unstable discovers an RC bug in XYZ-3.7 and files it in the BTS. The maintainer of XYZ fixes this bug and uploads it to unstable say on June 30. Here I have assumed that it takes 5 days for the maintainer to fix the bug and upload the new version. The number 5 should not be taken literally. It could be less or more, depending upon the severity of the RC-bug at hand. This new version in unstable, XYZ-3.8 is scheduled to enter testing on July 10th. But on July 5th some other person, discovers another RC-bug in XYZ-3.8 Let's say the maintainer of XYZ fixes this new RC-bug and uploads new version of XYZ after 5 days. So on July 10, testing has XYZ-3.7 while unstable has XYZ-3.9 This new version XYZ-3.9 is now rescheduled to enter testing on July 20th. Now since you are running testing, and since XYZ-3.7 is buggy, you could probably use XYZ only after July 20th. That is you essentially ended up with a broken XYZ for about one month.

The situation can get much more complicated, if say, XYZ depends on 4 other packages. This could in turn lead to unusable testing distribution for months. The above scenario which is artificially created by me, can occur in the real life. But such occurrences are rare. From an administrator point of view, Which distribution requires more attention?

One of the main reasons I chose Debian over other Linux distributions is that it requires very little administration. I wanted a system that just works. In general one can say that, stable requires very little maintenance while testing and Sid require constant maintenance from the administrator. If you are running stable, all you need to worry about is, keeping track of security updates. If you are running either testing or unstable it is a good idea to be aware of the new bugs discovered in the installed packages, new bugfixes/features introduced etc.,

The following pictures, from , illustrate the maintenance trauma the various distribution options might cause you over time. The graph provides a qualitative (but not quantitative) picture of the amount of time administrators might be spending.

What happens when a new release is made?

This question will not help you in choosing a Debian distribution. But sooner or later you will face this question. I included it here just because it has not been covered by any other FAQ.

As of Jul 10, 2005 the stable distribution is referred to as Sarge; The next stable distribution will be called as 'Etch'. Let's consider the particular case as to what happens when Etch is released as the new stable version.

oldstable = woody; stable = sarge; testing = etch; unstable = sid Unstable is always referred to as sid irrespective of whether a release is made or not. packages constantly migrate from sid to testing (ie etch). But packages in stable (ie sarge) remain the same except for security updates. after sometime testing becomes frozen. But it will still be called testing. At this point no new packages from unstable can migrate to testing unless they include release-critical (RC) bug fixes. When testing is frozen, all the new bugfixes introduced, have to be manualy checked by the members of the release team. This is done to ensure that there wont be any unknown severe problems in the frozened testing. RC bugs in 'frozen testing' are reduced to zero. The 'frozen testing' with no rc-bugs will be released as the new stable version. In our example, this new stable release will be called as etch. At this stage oldstable = sarge, stable = etch. The contents of stable and 'frozen testing' are same at this point. A new testing is forked from the current stable. Packages start coming down from sid to testing and the Debian community will be working towards making the next stable release. I have a working Desktop/cluster with Debian installed. How do I know which distribution I am running?

It is very easy to figure this out. Take a look at the /etc/apt/sources.list file. There will be an entry similar to

deb http://ftp.us.debian.org/debian/ unstable main contrib non-free

The third field ('unstable' in the above example) tells about the Debian distribution you are currently tracking.

However, the story does not stop there. In some sources.list file, you might have multiple entries corresponding to different distributions. This could happen if the administrator is tracking different packages from different Debian distributions. This is frequently referred to as apt-pinning. Apt-pinning is totally different ball game and I wont go into it in this document.

I am currently tracking stable. Can I change to testing or unstable? If so, How?

If you are currently running stable, then in the /etc/apt/sources.list file the third field will be either sarge or stable. You need to change this to the distribution you want to run. If you want to run testing, then change the third field of /etc/apt/sources.list to testing. If you want to run unstable, then change the third field to unstable.

Currently testing is called Etch. So, if you change the third field of /etc/apt/sources.list to etch, then also you will be running testing. But when Etch becomes stable, you will still be tracking Etch.

Unstable is always called Sid. So if you change the third field of /etc/apt/sources.list to sid, then you will be tracking unstable.

Currently Debian does not offer any security updates to testing or unstable. So make sure that you remove the lines relating to security updates of stable in /etc/apt/sources.list. Once you make the above changes, do apt-get update and then install the packages that you want. You can also do apt-get upgrade or apt-get dist-upgrade . Read the documentation on apt-get for more information. I am currently tracking testing (etch). What happens when a release is made? Will I still be tracking testing or will my machine be running the new stable distribution?

It depends on the entries in the /etc/apt/sources.list file. If you are currently tracking testing, these entries are similar to either deb http://ftp.us.debian.org/debian/ testing main contrib non-free or deb http://ftp.us.debian.org/debian/ etch main contrib non-free

If the third field in /etc/apt/sources.list is 'testing' then you will be tracking testing even after a release is made. So after etch is released, you will be running ABCDEFG ( where ABCDEFG will be the name of new testing distribution ).

But if the third field contains 'etch' then you will be tracking stable (since etch will then be the new stable distribution).

But what about Knoppix, Ubuntu, Libranet, Morphix, and others?

They are not Debian; they are Debian based. Though there are many similarities and commonalities between them, there are also crucial differences.

I know that Knoppix is based on the Debian system. So after installing Knoppix on the hard disk, can I use 'apt' package tools on it?

Knoppix is Debian based. But it is not Debian. You will be able to use apt package tools by pointing the /etc/apt/sources.list file to the Knoppix repositories. But then you are not running Debian, you are running Knoppix. They are not the same.

Knoppix is a Linux distribution designed to be booted as a live CD where as Debian is designed to be installed on hard-disk. Knoppix is great if you want to know whether a particular hardware works, or if you want to experience how a linux system 'feels' etc., Knoppix is good for demonstration purposes while Debian is designed to run 24/7. Moreover the number of packages available, the number of architectures supported by Debian are far more greater than that of Knoppix.

If you want Debian, it is best to install Debian from the get-go. Although it is possible to install Debian through Knoppix, the procedure calls for expertise. If you are reading this FAQ, I would assume that you are new to both Debian and Knoppix. In that case, save yourself a lot of trouble later and install Debian right at the beginning.

I installed knoppix on my hard disk. Now I have a problem. What should I do?

You should ask in the knoppix-mailing lists after searching through google. A list of knoppix related links can be found at . Asking in Debian forums will not be of any help. Remember "knoppix is not Debian" and now say that 10 times.