Translation(s): English - español - Français - Italiano

(!) ?Discussion

Changing From One Release Version To Another

Understand that the job of Debian is, and always has been, to produce Stable. The other releases are means to that end. You may find the other releases perfectly usable for whatever use you have for them. Great. That wouldn't be much of a surprise to any longtime Debian user. Many users, including (of course) Debian Developers use them routinely.

Understand, however, that Experimental is experimental; things are expected to break from time to time. Testing is just what it says it is; it's for testing whether it works reliably prior to its release as a future Stable. You may well find Testing or Unstable reliable enough, and in fact others have remarked that Debian Unstable is more reliable than some other distributions' Stable releases.

Corollaries to this in the commercial world are Development, Testing, and Production. In theory, businesses don't let anyone anywhere near their Production servers until they've proven their latest release isn't going to break anything which currently works, and whose new features or functionality have been documented to the business's satisfaction. This is what Debian's Stable name means: that, once released, the operating system remains relatively unchanging over time.

YMMV. Caveat emptor. You get what you pay for. As the saying goes, "If it breaks, you get to keep both pieces." ;-)

Moving Forward (eg., Stable --> Testing)

On the machine in question, execute the following command:

 dpkg --get-selections > packages.dpkg

Save the output file (packages.dpkg) to a USB stick (or remote location) for future use. This file is a list of your installed packages, which should make your task simpler if you find you need to go the reinstall route. Once you've got the new base install and apt sources set up, don't run any other package installation programs yet. You then pull up the packages.dpkg file and run the command:

 dpkg --set-selections < packages.dpkg

This will tell the packaging system which packages to install/uninstall, en mass. Once that's done, run:

 aptitude dist-upgrade

That will install your selections automagically, asking you the necessary config questions. You should then have a clone of your previous packages, but from whichever branch you preferred to move toward.

Moving Backward (eg., Testing --> Stable)

My condolences, but everything I've seen over the years is it's unsupported and re-install is the correct option. You may find your system is still usable after doing the above in reverse, however it's more likely you'll simply confuse the living daylights out of the packaging system.

It was never intended for Debian to be able to do this.

Obviously, the same is true for attempts to go from (eg.) Knoppix --> stable, Ubuntu --> testing, & etc. They're using different repositories after all; little to no effort has been taken to reconcile one with the other.

The moral of the story: backups! Wipe the system and re-install with whichever release you now choose to go with, then pull out your backup {disk,tape,yadayada} and slap your old data into place.

"But, but, but, ..."

No Buts! You may find some kind hearted soul in debian-user who will sympathise with your plight. It's equally likely you'll be roasted alive for having avoided ensuring your valuable data was backed up prior to hosing your system. If that happens, consider it an expensive education and move on.

ToDo : Content about downgrading system should be moved to SystemDowngrade

See also: DebianStable - DebianTesting - DebianUnstable - DebianExperimental