Having spent most of my Linux life using Debian, I'm been having a look at other distros and am really surprised at extent to which they don't provide a smooth upgrade between versions. Debian is infinitely upgradeable, and I've upgraded through a few major stable versions now.

I'm talking about well-supported distros like Fedora (and derivatives), even Ubuntu and derivatives. Even stable server-oriented distros like CentOS.

Is it because Debian's package management system and package upgrade scripts are just far more advanced than anything other distros have to offer?

Or is reinstalling from scratch on a major version upgrade just a better idea overall, regardless of distro?

3 Answers 3


It's a combination of a number of factors.

Most distros use major releases as the time to implement significant, sometimes breaking changes. For example, Fedora 15 added systemd and Ubuntu added upstart in 6.10. Debian is a very conservative distro in many ways. Large, breaking changes are frowned upon.

It's a consequence of that, for example, that Debian's release cycles are so far apart, because they require every important package to be modified to meet the standards of the new release.

Debian's package management technology is not superior to Fedora or Ubuntu's (obviously, because it's the same as Ubuntu's), but Debian has decided, culturally, that having a smooth upgrade system is important.

  • 6
    More precisely, they decided that what you don't want in a production server is to have to reinstall it from scratch to upgrade the software on it. Apr 20, 2012 at 5:11
  • Even with Fedora though, performing an (single-version) upgrade via the installer will try to DTRT with respect to underlying infrastructure changes if possible. May 26, 2012 at 3:22

To get more specific, I've encountered issues on many distro's when doing upgrades. Ubuntu For example, drastically changes its installed package base between releases. If you perform the traditional 'dist-upgrade', installed packages will update to their new releases, but the final result lacks new lineup changes. If a package from the default install gets demoted, to just 'supported' or worse 'unsupported', you still retain that package. If a new package is now in the default installation, you won't have it installed. Even though your release is 'technically' the upgraded release, it does not reflect the new release experience. The same case is also very accurate, when comparing CentOS5 to CentOS6, they completely reorganized their packaging names.

Debian prioritizes smooth upgrades, at the cost of such drastic changes. This is why Debian is slower on newer features, for their community the trade-off is acceptable. To echo the previous answer, it has nothing to do with the package-management technology per se. I will say, the constant Ubuntu re-installations are wearing on me.

  • Ubuntu includes a special tool for upgrades that supposedly takes care of more than just a dist-upgrade does. Do you know more about it and is it any good?
    – trr
    Apr 20, 2012 at 8:07

What you state is not true of the whole family of rolling release distributions.

For a system maintenance software, it is much more challenging to resolve cross-package compatibility issues when upgrading only some parts of the system or maintaining configuration consistency throughout the upgrades. Various software packages need to be adapted to work nicely with each other.

That is why the easiest (i.e. most reliable at the same dev time effort) solution to provide a system update is to prepare a full, thoroughly tested, full-installation release periodically. Enterprise solutions such as Red Hat take the position that the client must be given a reliable system and be troubled by breaking upgrades for as long as possible. (Of course, minor upgrades and bugfixes must be available or even pulled automatically). This is also the general philosophy behind free server distros such as CentOS.

Providing the end-user with a seamless upgrade route between releases is a great challenge for the system developers. Many distros choose not to sacrifice their scarce time to this. Many popular packages (like QT for instance) are hard to upgrade, often needing a complete reinstall. What is even more important, many projects show a decrease in development effort or are otherwise displaced by new technologies. In case of system packages, this often requires some significant system redesign. Migration procedures can be especially difficult to implement if they have to take into account the fact that some people will want to upgrade from version C to D, but others will be switching form B or from A or from some custom state in the middle.

So, as you might already have guessed, the most challenging approach is rolling release. I don't know the details of Debian's approach, but from your description I can see they are somewhere in the middle.

  • Debian fully supports upgrades from previous stable to current stable. Since they are 2 or 3 years apart, they involve major transitions such as glibc, KDE 3 to 4, the upcoming Gnome 2 to 3, etc. You mention that some packages are hard to upgrade and must be reinstalled - this is what is known within Debian as a "major transition" and yet their package manager is perfectly capable of managing these and they fully test and support them for end users. I'm thinking it has a lot more to do about mindset than you claim - Debian believes it's the right way to go about it, so they make it happen.
    – trr
    Apr 21, 2012 at 13:44

You must log in to answer this question.

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