aoitcloud

Debian

Debian’s stable/testing/unstable branches, and why servers should stick to stable

What Debian's stable, testing, and unstable (sid) branches actually mean, and why "stable" doesn't mean outdated or insecure.

27 December 2024 4 min read

Debian isn’t one thing – it’s three parallel branches, or “suites”, moving at different speeds: stable, testing, and unstable (better known as sid). If you’ve only ever used Debian’s stable releases, or you’re coming from Ubuntu where this distinction doesn’t really exist in the same form, it’s worth understanding what each branch actually is, because the terminology causes genuine confusion.

Unstable (sid): where packages start

New and updated packages land in unstable first, uploaded there by Debian’s package maintainers. Unstable – permanently nicknamed “sid” after a Toy Story character who breaks toys – is a rolling suite with no version number and no fixed release. It gets the newest software, but with the least testing, and it can and does break: dependency issues, half-migrated libraries, and short-lived bugs are normal here. It’s genuinely not intended for production use; it’s a working area for developers and very experienced users who want to test the newest packages or contribute to Debian itself.

Testing: the next release, taking shape

Packages migrate from unstable into testing automatically once they’ve sat in unstable for a set number of days without triggering release-critical bugs, and once their dependencies are satisfied. Testing is effectively a preview of the next stable release as it’s being assembled – it’s noticeably more stable than sid, but it doesn’t get the same rigorous, coordinated security handling that stable does. Security fixes reach testing more slowly and less predictably than they reach stable, because the Debian Security Team’s guaranteed support applies to stable, not testing. Testing is a reasonable choice for a desktop if you want newer software and can tolerate the occasional broken package, but it’s not what you want underneath a server holding real data.

Stable: what you should run on a server

Roughly every two years (there’s no fixed schedule – Debian ships a new stable release “when it’s ready”), the current testing suite is frozen, tested intensively, and promoted to become the new stable release. At the time of writing that’s Debian 13 “trixie”, released in August 2025 and succeeding Debian 12 “bookworm”. Once a release is stable, its package versions are effectively locked – you won’t see a web server or database jump to a new major version through routine updates.

“Stable” doesn’t mean “old and insecure”

This is the point that trips people up. Locked package versions sound like they’d mean unpatched software, but that’s not how Debian security works. Instead of upgrading you to a newer upstream version, the Debian Security Team backports the specific fix for a vulnerability into the exact package version you already have. You get the security patch without the version jump, the changed behaviour, or the risk of a new release breaking something that was working.

This is the same model used by RHEL and by Ubuntu’s LTS releases – it’s a deliberate, industry-standard approach to running production systems, not something unique or old-fashioned to Debian. It’s why “stable” is a description of behaviour and API/ABI compatibility, not a comment on how current the software feels. A stable release stays supported with these backported security fixes for roughly five years in total, across its full support life and the subsequent Debian LTS phase.

The practical takeaway

For a VPS running real services, use stable. It’s the only one of the three branches with a defined, guaranteed security response process, and it’s what the vast majority of Debian server documentation, guides, and third-party software packages assume you’re running. Check your release with:

cat /etc/debian_version

If you need a newer version of a specific piece of software than what’s in stable, look at upstream-provided repositories or containers for that one package rather than switching your whole system to testing or unstable – it keeps the rest of your server on Debian’s well-supported track. For the day-to-day mechanics of installing and updating packages on stable, see Managing packages with apt.

Get in touch

Drop our team a message today