I desire to totally upgrade everything in Debian:Stable including the release version, to the newest stable release available:

  • Packages update
  • Packages upgrade
  • D:S minor_version
  • D:S major_version
  • D:S release_version

Each action will be done respective to others in that entire recursive (monthly/yearly) single process, while I assume that release_version will surly be the last.

In other words, I'd like to create a "fully rolling release stable Debian".

I do it when having at least weekly/daily automatic backups (per month) of all the data so if something was broken I restore a backup.

What will be the command to "brutally" upgrade everything whatsoever including doing a release upgrade? I was thinking about:

apt-get update -y && apt-get upgrade -y && apt-get dist-upgrade -y
  • Not sure what the problem is. Is the Debian reporting that not all is up to date? Dec 10, 2018 at 2:07
  • No, but AFAIK, Debian stable never gets a release upgrade (only minor and major upgrades) as it is not a full rolling-release distro (like ArchLinux).
    – user149572
    Dec 10, 2018 at 2:28
  • Depends on what is in your /etc/apt/sources.list file (and anything under that that is included as well). If you have a release name - jessie, wheezy etc it is slightly different than if you have a release descriptor (stable, testing or unstable).
    – ivanivan
    Dec 10, 2018 at 4:45
  • @ivanivan please see my comment to the answer --- basically I need a release_version-agnostic way to totally upgrade Debian (minor, major, and release_upgrade).
    – user149572
    Dec 10, 2018 at 7:12
  • Closed as too broad? Now it's narrower?... What's so "broad" here. I swear I miss that...
    – user149572
    Dec 10, 2018 at 19:21

2 Answers 2


The Debian operating system is not bleeding edge. It enjoys great stability when installed, on supported hardware. However, as a result, the software that Debian uses and that is in its repo's are slightly older, than those in say, Ubuntu. Even though Ubuntu is Debian based, it is constantly being updated and things are getting tweaked day to day sometimes. If you successfully complete the commands you listed, everything should be up to date and considered the newest stable version. If you are however looking to go from Debian 8 to 9. The process is more involved.

After doing the above commands:

  • If everything went smoothly, perform database sanity and consistency checks for partially installed, missing and obsolete packages:

    dpkg -C
  • If no issues are reported, check what packages are held back:

    apt-mark showhold
    Packages On Hold will not be upgraded, which may cause inconsistencies after Stretch upgrade. Before you move to the next part, it is recommended to fix all issues produced by both above commands.
  • Make backup of your sources.list:

    cp /etc/apt/sources.list /etc/apt/sources.list_backup
  • Change to stretch;

    sed -i 's/jessie/stretch/g' /etc/apt/sources.list
  • Update

    apt-get update
  • List Upgradeable:

    apt list --upgradable 
        Note that if you see anything that alarms you at this point you can undo everything in reverse.

After the following commands there is no undoing:

apt-get upgrade
apt-get dist-upgrade

More information can be found: HERE

  • I thank you and upvoted; I must say I look for a release_version-agnostic way to totally upgrade Debian, that is, without using terms like "Jesse" or "Strech" (or "Buster" in the coming time). Is there a way to make the entire operation release_version agnostic?
    – user149572
    Dec 10, 2018 at 6:33
  • I edited the question anyway; not any grandiose edit; just clarifying how I imagine the process be done in a release_version-agnostic way.
    – user149572
    Dec 10, 2018 at 7:23
  • Each time you upgrade from one major release to the next, it is important to read the upgrade chapter of the Release Notes of the new release first: it sometimes includes special steps you should take to ensure a seamless upgrade. The "brutal" way mentioned in the edited question is not guaranteed to always work, even though it might usually work.
    – telcoM
    Dec 10, 2018 at 7:46

For anyone upgrading to Debian 11 "bullseye", mind that there is a change in the security archive layout, so simply replacing the codename in sources.list is not enough. I use WSL on Windows 10 and wsl --install -d Debian gave me Debian 9, so I had to upgrade to 11.

Here is a summary of the steps:

1. Backup everything

2. Update current release

sudo apt update
sudo apt upgrade

3. Edit the sources.list.

Without this step, the upgrade command won't "see" the new release. This is what I had before on "Debian GNU/Linux 9 (stretch)":

$ cat /etc/apt/sources.list
deb http://deb.debian.org/debian stretch main
deb http://deb.debian.org/debian stretch-updates main
deb http://security.debian.org/debian-security/ stretch/updates main

Changed it to:

deb http://deb.debian.org/debian bullseye main
deb http://deb.debian.org/debian bullseye-updates main
deb http://security.debian.org/debian-security/ bullseye-security main

Note that stretch/updates became bullseye-security, not bullseye/updates!

4. Clean and update

sudo apt clean && sudo apt update

5. Perform full upgrade

sudo apt full-upgrade

Confirmed success with:

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION="11 (bullseye)"

You must log in to answer this question.