To my astonishment, I found out I can't upgrade my CentOS 5.5 system to CentOS 6... (well I can, with a risky and painful process that is not supported and will most probably result in a mess)
So, rather that waste my time with a new fresh install that I will have to redo again and again every time a new major release comes out, I prefer to install a different distro and this time choose one that I know will always guarantee the possibility of a seamless upgrade to any new minor or major release.
Among the "big" linux distros, which ones take care of guaranteeing the ability to upgrade seamlessly across major releases? Does Debian?
These days, upgrading your OS in-place to a new major version is not necessarily a desirable or easily-supportable feature.
Too much changes between major versions of Linux kernels, userspace applications, libraries hardware support and package revisions, so the result is the risky process you've probably discovered online.
The adoption of configuration management tools (CFEngine, Puppet, Chef, etc.), coupled with good planning and repeatable application-deployment processes helps ease the process of rebuilding systems in-place...
I mean, you should be able to rebuild a server by retaining the data directories, /etc, /home and configuration files... Plus, the system should be partitioned to facilitate that (e.g. more partitions than
/boot
and/
).More often than not, I end up building a parallel system and just migrating data/settings.
Both Ubuntu (https://help.ubuntu.com/12.04/serverguide/installing-upgrading.html) and Debian (http://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.html) support upgrading. For Ubuntu, my personal preference is to upgrade from LTS to LTS every 2 years on servers, and if time permits upgrade to every new release on a desktop.
People have mixed experiences upgrading both these systems, but with reading the release notes and planning carefully, upgrading never broke anything beyond repair for me (and often, nothing ended up broken at all).
Major updates are always a bit risky. As far as I know, the Fedora project is working on a new upgrade system that won't require system downtime. Ubuntu can be also updated using their package manager.
However, if I may suggest an alternative, there are some Linux distributions which are rolling release distributions, which means they actually don't have a major version, but keep updating all the time instead. It is said that such distributions might be risky for production environment, however, I use Sabayon Linux for production systems for several months and I find it quite stable. Sabayon Linux is not a "big" distribution by itself, but since it's based on Gentoo, you'll find support from the Gentoo community (Google actually knows to give you results about Gentoo when you're looking for Sabayon)
There are no linux distros that guarantee you will always be able to upgrade to a major new release (I believe they try their hardest to always have an upgrade path). The distros that make it easy to upgrade for me have been debian, or distros based off debian (ubuntu). They normally have documentations walking you through the steps to upgrade from one release to the next. arjarj gave some great examples of the upgrade path for each, if you are running ubuntu on the desktop you might upgrade like this:
http://www.ubuntu.com/download/desktop/upgrade
I hope this has been helpful.