32
  • What exactly is a "stable" Linux distribution and what are the (practical) consequences of using an "unstable" distribution?

  • Does it really matter for casual users (i.e. not sysadmins) ?

I've read this and this but I haven't got a clear answer yet.

"Stable" in Context:

I've seen words and phrases like "Debian Stable" and "Debian Unstable" and things like "Debian is more stable than Ubuntu".

3

6 Answers 6

56

In the context of Debian specifically, and more generally when many distributions describe themselves, stability isn’t about day-to-day lack of crashes, it’s about the stability of the interfaces provided by the distribution, both programming interfaces and user interfaces. It’s better to think of stable v. development distributions than stable v. “unstable” distributions.

A stable distribution is one where, after the initial release, the kernel and library interfaces won’t change. As a result, third parties can build programs on top of the distribution, and expect them to continue working as-is throughout the life of the distribution. A stable distribution provides a stable foundation for building more complex systems. In RHEL, whose base distribution moves even more slowly than Debian, this is described explicitly as API and ABI stability. This works forwards as well as backwards: thus, a binary built on Debian 10.5 should work as-is on 10.9 but also on the initial release of Debian 10. (This is one of the reasons why stable distributions never upgrade the C library in a given release.)

This is a major reason why bug fixes (including security fixes) are rarely done by upgrading to the latest version of a given piece of software, but instead by patching the version of the software present in the distribution to fix the specific bug only. Keeping a release consistent also allows it to be considered as a known whole, with a better-defined overall behaviour than in a constantly-changing system; minimising the extent of changes made to fix bugs helps keep the release consistent.

Stability as defined for distributions also affects users, but not so much through program crashes etc.; rather, users of rolling distributions or development releases of distributions (which is what Debian unstable and testing are) have to regularly adjust their uses of their computers because the software they use undergoes major upgrades (for example, bumping LibreOffice). This doesn’t happen inside a given release stream of a stable distribution. This could explain why some users might perceive Debian as more stable than Ubuntu: if they track non-LTS releases of Ubuntu, they’ll get major changes every six months, rather than every two years in Debian.

Programs in a stable distribution do end up being better tested than in a development distribution, but the goal isn’t for the development distribution to be contain more bugs than the stable distribution: after all, packages in the development distribution are always supposed to be good enough for the next release. Bugs are found and fixed during the stabilisation process leading to a release though, and they can also be found and fixed throughout the life of a release. But minor bugs are more likely to be fixed in the development distribution than in a stable distribution.

In Debian, packages which are thought to cause issues go to “experimental”, not “unstable”.

5
  • 1
    Your fourth paragraph is not entirely accurate. For normal end-users, less stable distros do not mean that you have to change how you use your system on a regular basis. It’s when you start dealing with custom code (such as is the case in many enterprise scenarios) that that becomes an issue. Cases like Ubuntu regularly forcing major, highly visible, changes on users are an exception that even people who use a big rolling distro like Arch or Gentoo would not tolerate. Feb 16, 2021 at 18:45
  • 7
    @Austin the impact of changes is probably a matter of opinion... My experience supporting end-users on Debian testing is that many, many changes are perceived as major, even if they’re not for more technically-savvy users. And they happen constantly, unpredictably, which caused constant stress for end users; whereas a bump from one release of a non-rolling distribution to another can be planned for, and the related changes happen all at once. Feb 16, 2021 at 19:11
  • 2
    @AustinHemmelgarn I also have some experience supporting non-technical end users, and I would not recommend a non-stable distro for this. Changes that the usual linux administrator would barely notice can be major obstacles.
    – Nobody
    Feb 17, 2021 at 10:54
  • @StephenKitt In Debian, all (new) packages enter the repository via "experimental" channel, and after some triage with a defined procedure, they may go to unstable → testing, and becomes "stable" when the "testing" version (e.g. Bullseye) is released as new "stable" (e.g. Buster). RHEL is even stricter w.r.t. "stability", a.k.a. "API consistency", so that some software that runs on RHEL 7.0 will always run on RHEL 7.999 as-is.
    – iBug
    Feb 17, 2021 at 16:30
  • 2
    @iBug no, in Debian, packages enter through unstable, then once they build on all the supported architectures (which can be modulated in the package metadata), and reach a given number of days with no release-critical bugs filed, or test regressions, they migrate to testing. There’s pretty much the same API consistency as in RHEL (albeit without the written level guarantees available with RHEL); software built on Debian 10 will continue working on all subsequent point-releases. Feb 17, 2021 at 16:44
9

What exactly is a "stable" Linux distribution and what are the (practical) consequences of using an "unstable" distribution?

Using debian Wiki to answer this question.

Debian Releases

Debian Stable

The "stable" distribution contains the latest officially released distribution of Debian.

This is the production release of Debian, the one which we primarily recommend using.

The current "stable" distribution of Debian is version 10, codenamed buster. It was initially released as version 10 on July 6th, 2019 and its latest update, version 10.8, was released on February 6th, 2021.

Debian Unstable

The "unstable" distribution is where active development of Debian occurs. Generally, this distribution is run by developers and those who like to live on the edge. It is recommended that users running unstable should subscribe to the debian-devel-announce mailing list to receive notifications of major changes, for example upgrades that may break.

The "unstable" distribution is always called sid.

@roaima's comment and debian wiki (debian stable) to answer Which Debian distribution (stable/testing/unstable) is better for me?

The release of Debian called "stable" is always the official released version of Debian. Ordinary users should use this version. See also DebianStability.

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 chapter.

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 (or testing) once you are a little more confident.

If you are a desktop user with a lot of experience in the operating system and do not mind facing the odd bug now and then, or even full system breakage, 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 stability requirements or is exposed to the Internet, 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.

Saying Debian is more stable than Ubuntu is just an opinion.

9

What exactly is a "stable" Linux distribution

Stable Linux distribution is the distribution that provides packages that went through a development process of testing and patching. Packages had to meet strict criteria to move from unstable to testing and packages from testing ended up in stable distribution in the latest release. You can force the installation of the testing or unstable version, but it is at your own risk. This may vary by single distribution. For example, a package that is stable in Fedora may not yet be stable in Debian.

consequences of using an "unstable" distribution?

As @StephenKitt said in the comment:

The goal of “unstable” is always to prepare the next stable release

Packages here are under active development, so you may encounter some distribution-specific bugs, performance issues, unresolved dependencies, or you may not encounter anything mentioned at all.

Does it really matter for casual users (i.e. not sysadmins)?

Depends on the user's needs. If the user needs a secure, robust and reliable system, stable distribution is the best option. But those distributions are usually few versions behind upstream (in Debian case more than few version). So if the user for any reason needs the newest versions of packages, stable distribution is probably no way to go. In this case, switching to testing or some bleeding-edge rolling release distribution may be a good idea.

0
4

A distro being ‘stable’ generally means that there will be no breaking changes in the API/ABI it provides over the course of the lifecycle of a given release.

This means, in particular, that software written to run on a given release of the distro will (mostly) not need any changes to keep working correctly on that same release of that same distro. This guarantee is exceedingly important for enterprise and infrastructure usage, because it means you can keep your underlying platform up to date in terms of security without having to put a lot of effort in to keep your own applications and services working correctly on it.

This concept can actually go beyond the basic idea of a given release, and extend to major aspects of the distro design itself. This is actually why Ubuntu is often called less stable than Debian even though they both adhere to the above definition of stability, Canonical (the compan behind Ubuntu) has developed a reputation for making big, highly visible, changes to how the distro works which require significant changes not only to software running on it but also how users interact with the system (the first big examples were Unity and Upstart, the most recent one is their push to force everyone to use Snap packages instead pf APT).


Now, in terms of end-user impact, unless you need that comparability guarantee or have an atypical setup, there’s not much impact for most people in terms of using an ‘unstable’ distro other than needing to update more frequently to stay secure.

In fact, there’s a major benefit to using ‘unstable’ distros in that you will almost always get new versions of software much more quickly than you otherwise would (Debian’s stable releases are an extreme example of this working in reverse, many things in Debian 10 are months or even years behind the upstream projects). This goes double for trying to use brand-new hardware, as many ‘stable’ distros use old kernels that lack support for the newest hardware.


As a side note, different distros may have differing manings for the terms ‘stable’ and ‘unstable’.

In the case of Debian, ‘unstable’ is a compilation of the most recently packaged versions of all packages available in Debian. It serves as a base for their ‘testing’ version, which is what will be the next release of Debian (but is usually behind ‘unstable’), and is actually perfectly usable for general purpose daily usage by itself, while it’s the ‘experimental’ repositories that are truly dangerous territory (they contain things that the distro maintainers have not tested enough to be certain they play nice with the rest of the system).

In contrast, with Gentoo (one of the more popular rolling-release distros), the difference between ‘stable’ and ‘unstable’ is simply a matter of how rigorous the testing of that particular version of that package has been. Even there though, ‘unstable’ is not particularly dangerous most of the time provided you actually know what you’re doing (I’ve been using Gentoo unstable for about a decade now, and have only had one time I had to rebuild a broken system because of it).

Most other distros fall somewhere in-between, or actively choose to avoid using such terminology, instead referring to ‘releases’ (which are implicitly stable) and ‘development’, ‘next’, or something similar, with the distinction being mostly on-par with the difference between Debian’s ‘stable’ and ‘unstable’.

1
  1. You get much lesser amount of regular package updates.
  2. You do not get significantly newer software versions (introducing potentially new bugs, incompatibilities or changes what you need to re-learn).
  3. In exchange, the packages in it are older. This worsens with time.

The sentence "Debian is more stable than Ubuntu" uses a little bit different meaning of the "stable" word. It does not mean stable, as "stable release", it means that it has lesser amount of bugs.

I use both Debian and Ubuntu long ago. My opinion is that none of them have a sensible amount of bugs, comparing them is imho meaningless. The statement might root in the fact that Ubuntu is much more likely used is GUI desktop roles, and not that it would be more buggy.

0

Stable, of course, means no crashes.

So why is Debian more stable than Ubuntu? You will see from this example. I was installing a package from the ubuntu repo, this version happened to be broken. So my work was interrupted. I am in the situation of either rolling back to a previous version which is hard to do with apt. or wait for the next release to fix the problem. But you should be much safer from this situation if you use debian-repo.

Different packages have different stability requirements. I am speaking from a desktop user's point of view.

For the Linux kernel, you should use the latest stable release. This means more performance and hardware support, and more bug fixes, which is critical for desktop users. Although the quality of the kernel is good, there may still be some regressions in the new version. So you can use one less new version instead.

Also firmwares, GPU drivers, Mesa, some end-user applications like LibreOffice or Firefox. You can use the latest versions; if they happen to be broken, you can easily revert to an earlier version.

For others, like bash, dbus or even gcc, you may prefer stable to new, and there may be differences between versions 1.2.3 and 1.2.4, but do not worry, running stable without problems is more important.

Packages like python, the new version has better performance. unless you clearly know you need this or you are using python in a performance critical scenario. you can safely use the stable version.

Packages like libc, which is essential to the whole system, even if it is said to be for performance, will be in the new version. You'd better not upgrade, it's likely to break the whole system. using Debian's stable version is good.

The last but also the least, packages like Steam, they will automatically upgrade on every startup, you even do not have any other choice, so no need to worry.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .