I have written several times recently about Debian GNU/Linux and several distributions derived from it. As a few people have pointed out, though, when I wrote about Debian itself I only covered the "Stable" distribution (currently 'Wheezy'), whereas the other distributions are almost always derived from the Debian "Testing" distribution (currently 'Jessie').
This leaves open some valid questions about how Debian Jessie itself stacks up against those other distributions - and even the more basic question of how does Jessie compare with Wheezy? Since the first alpha release of Jessie was just made a week or so ago, this seems like a good time to take a look at it in detail.
First off, what is the Testing release, and how does it differ from the Stable release? The Debian Wiki gives a good overview of the Debian Testing Release, and the Debian Developer's Corner also has some useful information about how the Testing distribution works, and an FAQ that addresses a variety of issues and considerations that you might have if you want to use this distribution.
But basically, incoming packages first enter the Debian "Unstable" distribution, and they stay there for at least a few days, at least until they have been built and verified for all of the architectures currently supported, and until they don't introduce any obvious new bugs or instability into the distribution. Once they have reached the required stability, they are migrated into the Testing distribution.
This means that Testing should be protected from the worst of the instability that can result from new packages, but it is still not impervious to it. So that is the first criteria — if you are considering running Debian Testing, you must be willing to accept that there can be unexpected bugs, ranging from minor irritants to major problems. The positive side of this is that when such things do happen, there will be lots of people all over the world working on it, so such situations generally don't last very long.
This is also the first area for comparison between Debian Testing and distributions derived from it, such as Linux Mint Debian Edition, Makulu and many others. With each additional layer between yourself and the original Testing distributions, you are decreasing the chance of such problems getting through to your system, because you are adding more smart and dedicated people to the pipeline, and they are almost certain to see such problems before they filter through to you.
As a side note I would also mention that Linux Mint Debian Edition was originally supposed to be a true "rolling release", tracking the Debian Testing distribution and updates pretty closely. It didn't take long for the Mint developers to realize that this involved a very large amount of work, and there was a very large risk of something suddenly getting broken, if only for a short time. They then changed to an "Update Pack" distribution model, so that they have more time to assemble and test updates before sending them on to their users.
Another characteristic of this Unstable/Testing/Stable hierarchy is that changes, updates and new packages do not automatically progress from Testing into the current Stable release. Things like security-related patches and updates obviously are integrated into the Stable distribution, while at the other extreme new Linux kernel releases generally do not go through — so Wheezy today is still running kernel 3.2, while Jessie is running 3.13.
One result of this decision to stay with the original kernel major version for the entire life of the release, Debian Stable will often not have the latest device drivers (or other enhancements) which are part of newer kernel developments. I have mentioned this several times since Wheezy was released, because the 3.2 kernel doesn't support the Ralink 3290 wi-fi adapter in my HP dm1 netbook. This can also show up in things like the BTRFS filesystem, and other such areas of ongoing development.
Between these two extremes, other package updates are evaluated based on the significance of the update and the risk to stability in determining whether they go through to the current Stable distributions, or just remain in the current Testing until the entire distribution is released as a new Stable version.
This is an area where distributions derived from Debian Testing can make their own decisions, and they may choose to include updates that Debian does not migrate to Stable, or even to include them from Unstable before Debian moves them to Testing.
This aspect becomes particularly important because when Debian gets to the final stages of a release cycle they "freeze" the Testing distribution so that they can test and ensure that it is a stable as possible before releasing it. This "freeze" can be relatively long, depending on how the testing goes, and how many other non-technical (political) considerations might get in the way.
The result of this can be that the Testing distribution gets somewhat left behind by the ongoing development of the Linux kernel and all of the other packages. Of course the distributions that are derived from Debian are not bound by such a "freeze", so if you were using one of those you would probably be more up to date during this phase.
One more thing to say: the Unstable and Testing branches are not only used to track the ongoing development and distribution of the Linux kernel and all the other packages. They are also used by the Debian developers to try out completely new ideas and new packages. In fact the situation right now is a good example of that; Debian has used the Gnome desktop by default for a long time now, but the recent Alpha release of Jessie uses Xfce — and the developers have specifically stated in the release notes that they haven't decided yet if Debian 8 will use Xfce or Gnome. So be prepared for future changes in this area. Or not. Maybe.
Okay, so that's an overview of some of the administrative, technical and political issues involved in deciding to run Debian Testing rather than Debian Stable. How do they compare when they are actually installed and in use?
Well, unfortunately at the moment it is not quite so easy to make a direct comparison, because the difference in desktops (Xfce in Testing vs. Gnome in Stable) causes a lot of the associated packages to be completely different. But here is a quick overview of just a few things:
|Stable (Wheezy)||Testing (Jessie/Sid)|
|Desktop||Gnome 3.4.2||Xfce 4.10|
I mentioned the dramatic difference in kernel versions above: the same is true of the desktop. Gnome 3.4.2 is quite old, the current version is 3.10 and it looks like 3.12 will be out soon; Xfce 4.10 is the latest available. Iceweasel is kept pretty well up to date even in Stable, and most of the other packages lag to varying degrees, depending on size, complexity and potential impact of updates.
Having gotten this far, what if you decide that Debian Testing is the right distribution for you. How do you get it? If you already have Debian Stable installed you just change your repository list, replacing "stable" (or "wheezy") with "testing" (or "jessie"). There is some subtlety in those dual names, by the way. If you use the code name (currently "jessie"), then you will track that specific release through its development and into Stable. That means today you will be running Debian Testing, but at some point in the future you will be running Debian Stable, without ever changing your repository references. But if you use the generic name ("testing"), you will stay with the testing release permanently.
Either way, once you have changed your repository list, refresh your package list, and update. Of course, depending on how long it has been since Stable was released, there might be a lot of updates to be done on that first pass.
Another alternative is to download the latest Testing debian-installer. This is what I did, with the recent Alpha release, and it has the advantage of requiring a lot less updates after installation compared to updating from Stable. However, this is not a guaranteed path, because that image is actually intended for testing the installer — this means that at any given time it could break, fail, or perhaps even disappear completely for a short time, for reasons that are not directly related to the testing distribution itself.
Okay, that's enough about Debian Stable and Testing. The other thing I want to do is compare Debian Testing to some of the popular distributions which are derived from it. Again, what are the trade-offs, what do you gain by running a derivative, and why would you want to do that (or not)?
One of the best known of those derivatives is Linux Mint Debian Edition, and as it happens it is also one of the best illustrations of the pros and cons of using such a distribution.
BIG Pro: Improved stability. The very experienced developers at Linux Mint are testing, integrating and packaging updates before they are distributed, in this case via LMDE Update Packs. This greatly reduces the chances of something being broken by an update.
BIG Con: Delayed distribution. That testing, integrating and packaging takes time. so updates take longer to get to you. How much longer depends on the distribution, of course, and that means not only how long it takes them to do the work, but also what their update policy is.
Mint Debian bundles most updates in to Update Packs, which are released every three to six months, although certain things like critical security fixes are distributed individually. For comparison, SolydXK is now on a fixed 3-month Update Pack schedule (it used to be every month), and Makulu is on a more or less continuous update system (if you are very brave and/or very impatient, you can get LMDE updates sooner by configuring it to use the 'Incoming' repositiories rather than the 'latest', with an increased risk of instability.)
Pro: Different desktops. There are derivative distributions with KDE, Cinnamon, MATE, Xfce, LXDE and others. Of course you could install any of these desktops yourself on Debian Testing, but there are two important differences. First, you don't have to do the work, they are already installed and integrated for you. Second, doing this correctly and completely means not only the desktop itself, but a lot of other utilities, applications, system programs, and even themes.
Pro: Including packages that are not in the Debian GNU/Linux base distribution. The obvious example of this is proprietary and binary (non-FOSS) packages. The one that most often gets mentioned is the Adobe Flash player/browser plug-in. A couple of other obvious ones are the proprietary drivers for AMD/ATI Radeon and nVidia graphic controllers. Some less obvious examples are binary firmware blobs required for things like Intel and Broadcom wireless networking adapters. Of course you can get a lot of these things in Debian by just including the "non-free" repositories, but even that is not enough for some of it. The derivative distributions can take care of integrating the packages and adding the necessary repositories so that they are kept up-to-date.
Con: There is always the possibility that development will stall, or even stop altogether. One current example of this is SimplyMEPIS, which hasn't had a new release since May 2011 — but I haven't given up hope yet. There are still occasional rumblings about development and upcoming releases, but not much ever seems to come of it.
There are two obvious alternatives here; one is that someone else takes over the distribution, or forks it and continues with a "new" derivative. This is more or less what happened, for example, with Mandriva being forked to create Mageia — although Mandriva sort of continues to try to stagger along. The other alternative would be that you just switch to another Debian derivative distribution.
So there you have it. There is a simple summary for all of this:
- Debian Stable if your first priority is a rock-solid system, and you don't necessarily need to support the very latest hardware. This is often the case if you are setting up a server of some sort, but it may also be true if you are going to use a bit older .system as a desktop workstation,
- Debian Testing if you want or need to have the latest hardware support, kernel developments and advanced filesystems
- Derivative distributions if you want a lot of additional packages included in the base distribution, thus saving you the time and effort of installing and configuring them.