Posted on Fri 30 May 2025

Debian upgrade policies

Since you’re interested in not breaking things, you should be running Debian Stable.

Debian makes several kinds of package changes available:

security fixes
general bug fixes (including security fixes)
upgrades to a new major Stable (e.g. 12.x => 13.0)
backports from testing of selected packages 
"volatile" updates to a few packages that some people want much faster, even if they break things

You control these by the wording of your /etc/apt/sources.list (or files in /etc/apt/sources.list.d/)

If you list repos with the name “stable”, they will be automatically changed over when a major Stable change occurs – 12.x => 13.0. But if you list them with the codename for stable (bookworm, currently) they will not.

If you don’t list a repo you won’t get updates from it.

The vast majority of people I know running Debian stable use the codename so that they can decide when they want to do the major upgrades. Most of them also avoid backports unless they have a specific need.

The package apticron, if installed, will reload the list of available packages from all repos in your sources.list{,.d/} nightly, and let you know via email if anything is ready – but *not install them. That remains manual.

The package unattended-upgrades, by contrast, does the apticron thing and then automatically installs upgrades to packages that you have previously installed, plus any required dependencies, which may include new packages. You probably don’t want that.

There is also a complex system called “pinning” to allow preferences for individual package versions or repos, but most people who think this is a good idea are wrong. If you actually need it, I have a cheatsheet on the blog.


© -dsr-. Send feedback or comments via email — by continuing to use this site you agree to certain terms and conditions.

Built using Pelican. Derived from the svbhack theme by Giulio Fidente on github.