When the time comes around for your distribution of choice to release a new iteration of its platform, you are faced with a seemingly simple choice—to upgrade or do a fresh installation. On one hand, you wind up having to do less work. On the other, the end result is a clean, fresh start.
Of course, nightmares do occur. Even the best-planned upgrade can go sideways. Does this mean you should always do a fresh install?
The question isn’t really all that simple because the answer depends on so many factors. I want to address the challenge of upgrades vs. fresh installs and see if I can help you determine which is the best route to take. Hopefully, in the end, you’ll have, on your hardware, the latest greatest operating system done in such a way to perfectly fit your needs.
Distribution determines path
The route you take to upgrading could already be determined for you. For example, if you happen to use a rolling release distribution, you most likely already have the latest greatest. Why is that? Because the rolling release distribution is constantly in a state of upgrade. Instead of using a sort of milestone release system, the rolling release uses a steady stream of “micro-updates” to keep your release up to date.
If you’re using the likes of Arch Linux, Arch Bang, Manjaro, Semplice Linux, openSUSE Tumbleweed, or Gentoo you are most like already using the latest release. On the other hand, if you’re using a distribution that is not a rolling release and tends to live on the cutting edge (such as Fedora), upgrades can tend to go sideways quite a bit. Your best bet with these types of distributions is to always do a fresh installation.
Some distributions have a much easier time with upgrading than others. For example, until recently I had been using Ubuntu Linux as my production desktop operating system. That system started with Ubuntu 13.04 and enjoyed upgrades to 13.10, 14.04, and 14.10—all with very minimal issues (all of which were third-party software). This should illustrate that some distributions are so solidly designed and their upgrades so well tested, that upgrading (even major release updates) go off without a hitch.
Hardware determines path
Consider this: Desktop versus server upgrades. Clearly a major upgrade to a desktop doesn’t hold nearly the risks of a major server upgrade. This is especially true when your server OS has been overly tweaked to meet your needs.
As a general rule of thumb, servers should always be handled with considerably more care than desktops. With regards to upgrading servers, your best bet is either virtualization or setting up brand new hardware (outside of production), testing, migrating data, and then (once all tests are complete) rolling the freshly installed server into production (and taking the old server down).
The last thing you need is to do a distribution upgrade on a server, only to watch the upgrade fail and your server wind up requiring data recovery and a fresh installation. This happens...even with Linux.
Installed software determines path
Consider what you have installed on your system. Have you, without fail, stuck with the distribution’s package management system (such as the Ubuntu Software Center, apt-get, dnf, Zypper, dpkg, etc)? Or have you gone off course and installed a number of packages from source?
Part of the draw of the open source platform is the ability to download the source of software, tweak it to fit your needs, and install (or re-distribute) it. But by installing from source, the package management system may not be aware of the installed software and the upgrade could break the application. That’s all fine and good if you’ve only installed a few packages in this manner. However, if you’ve installed the majority of packages from source, doing an upgrade will ultimately cause some serious problems and you’ll wind up having to remove and reinstall those packages anyway. To that end, a fresh install would be best.
Data placement determines path
For a very long time, it has been considered smart design to place your user’s home directory outside of the standard partitioning scheme. For example, you could house the user home directories on a completely different drive than the operating system. If this is the case, a fresh install of the operating system does no harm to user data. This does, however, pose a slight challenge to getting the new installation to recognize the location for the user’s ~/ (home) directory (a challenge that is handled post-install and requires a bit of /etc/fstab magic).
I have, for years, worked with a minimum of two drives in every Linux installation: one drive houses the operating system and the other drive houses all data. I will change all paths (such as Pictures, Music, Movies, Documents) to default to the second drive. By doing this, I can do a fresh installation without worrying about data.
One of the first things you should consider is why you want to do the upgrade in the first place. Three of the most common reasons for upgrading are:
You always want the latest-greatest.
Your current release is no longer supported.
You want a new feature or software release that you cannot get on your current iteration.
Clearly, if your current release is no longer supported, it’s time to upgrade. This might mean you are a fan of Long Term Support (LTS) releases (such as offered in Ubuntu). If that is the case, you will most certainly want to do a fresh installation. Upgrading from, say Ubuntu 12.04 to 14.04 could wind up a disaster.
If you are one that always wants the latest, you are probably working with a cutting edge distribution, so a fresh installation might be best.
Also, if your desire to upgrade is driven by a new feature or software release, an upgrade could be your best path (so long as you take in previously mentioned issues/concerns).
Say you’re an Ubuntu user and you’ve upgraded from 13.04 to 13.10 to 14.04 to 14.10 and each upgrade was flawless. Soon 15.04 will be released. There are two things to consider:
Should Canonical stick with X.org and Unity 7 for 15.04, the upgrade should go off as well as all others.
Should Canonical finally bring out Mir/Unity 8, you’ll want to do a fresh install (you might actually want to wait until 15.04.01 is released… but that’s a matter of opinion).
You will also want to consider how much time/effort you have spent customizing your installation as well as how many third-party applications you have installed. Customization takes time. Installing software takes time—especially if you have to track down repository information to add to your package management system (in order to install all of those third-party titles). One solution for this is to backup your sources file (such as /etc/apt/sources.list or all the files in /etc/yum.repos.d/) and save them to the cloud or on an external device. Once you’ve done a fresh installation, copy those sources back, update your package manager, and install away.
Finally, consider the partition type you prefer. New hardware (such as solid state drives) work much better with the btrfs and XFS file systems. If you’re using a distribution that previously defaulted to Ext4, an upgrade will continue with that file system. Your best bet, to take advantage of the more efficient file system, is to do a fresh installation.
In the end, the choice is yours. Make sure you choose wisely and you’ll wind up with a fresh desktop ready to serve you for the long haul or the short term. Upgrading Linux doesn’t have to be a nightmare. Plan accordingly, take into consideration all factors, and you can avoid any and all nightmares.