Fedora upgrade – Does this work?

The idea of upgrading your operating system from one version to another is an interesting one. It implies you will be changing your software without changing your hardware. This is true for short-lived operating systems the likes of Fedora, service packs for long-lived distributions like CentOS, and sometimes, when the vendor feels adventurous and offers you something new. This is a wider philosophical discussion for another time.

Today, I would like to show what it takes to (presumably safely and successfully) upgrade Fedora. I’ve tried similar endeavors in the past, with Ubuntu, Mint and CentOS, plus some non-Linux systems, and the results are mixed but good. Mostly good. In the past years, this has become easier, more streamlined, less error and disaster prone. With CentOS, this is a simple affair, but then, you are doing service pack like upgrades really. Ubuntu does offer genuine, full-edition upgrades, and I tried it several times, with decent success. The same goes with Linux Mint, where I dabbled with in my 17.X series testing. Now, What Does Fedora Say?

To GUI or not to GUI?

My test box is a notorious Lenovo G50 laptop with a complex operating setup, with UEFI, GPT, 16 partitions, Windows 10, and some 6-7 Linux distributions, including both a Fedora 24 and a Fedora 25 instance, while the overall boot sequence is controlled by a recently installed MX Linux MX-16. So, my goal is to upgrade the older Fedora 24 system to match the Fedora 25 edition. Of course, everything should be tippy top, all the applications should work, my customization ought to be preserved, and so forth. No proprietary graphics driver, which presents another challenge, plus let’s not forget Wayland, but this is an exercise for another time. I do have an older pair of laptops that can be used for this.

Gnome Software, upgrade prompt

The official Fedora documentation offers two types of upgrades – via Gnome Software or using the dnf command line functionality. The former is easier but it also hides away all the gory details. The latter is ever so slightly more convoluted, but you have full control over what you’re doing.

Gnome Software downloading

I decided to go with the second option, and the main reason is – my experience with Gnome Software has been quite negative in the past year or so, and I am not so keen to put my faith in a tool that does not even correctly refresh the repositories or does not show software that does exist via the command line interface. Therefore, we will do the upgrade old school style, which is also more educational in the long run.

Command line

I followed the instructions to the letter. I started by updating (and upgrading) the existing application base in Fedora 24. This meant waiting a few minutes for the distro to update itself, a process that took about a quarter of an hour, and included roughly 1.1 GB of data spread across 853 packages.

dnf upgrade --refresh

Prework in progress

I rebooted the system once this was complete – and logged into MX-16, to update the GRUB configuration so that the system would be using the latest available kernel. Then, I rebooted again into Fedora, so I could continue with the next step in the process.

I then install the DNF system upgrade plugin and executed the download command. Smartly, the upgrade is broken into two parts. First, you download everything – if this gets interrupted for any reason, you can always resume later. This guarantees all the sources are stored locally before the actual upgrade process kicks in. This is also a relatively fast step, mostly dependent on your bandwidth. A total of 1.7 GB data and some 1648 packages – the number does not match what you get when asked to hit [Y/N], but then it never quite did with Red Hat systems. You always end up with a higher number of packages, and I guess this has to do with how the whole dependency tree is calculated. No biggie.

dnf install dnf-plugin-system-upgrade

System upgrade plugin

dnf system-upgrade download --refresh --releasever=25

The upgrade also marked several packages for removal (mostly kernels) but a few were also marked for downgrade, which probably means some irreparable bugs must have been found. Notice the Wayland packages, too. I had no conflicts or issues with my third-party software sources, which include VirtualBox, Moka icons, RPM Fusion, Google Chrome, and several others. The system did ask me to re-confirm the addition of these sources and approve their signing keys, but after that, the process went smoothly. However, this still isn’t the final upgrade step.

Upgrade summary

Transaction Summary
================================================================================
Install 21 Packages
Upgrade 414 Packages
Remove 4 Packages
Skip 2 Packages

Total download size: 1.0 G
Is this ok [y/N]: y
Downloading Packages:

Complete!
Download complete! Use 'dnf system-upgrade reboot' to start the upgrade.
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Work in progress

Package download; the actual upgrade happens after you execute the system upgrade & reboot command, and it happens without a running GUI session, so no screenshots there.

Again, smartly, the actual package upgrade happens after a reboot – and before you are logged into your session. Think init 3 or similar. There isn’t an active session and the X Server (or Wayland whatever) isn’t running, so the system can actually replace graphics drivers, too. You may have already seen this functionality in Gnome before; you can use Software to update your box, and it will actually offer to Restart & Update, which is quite unnecessary if you think about it. Very un-Linux-like. However, during the upgrade, it actually makes sense.

After I fired off the last command, the system rebooted, and it took almost an hour to complete the package upgrades. Once this step was done, I logged into MX-16 one more time and ran a GRUB update. I was able to confirm the generated configuration file now had two Fedora 25 entries. This looked like a good sign.

GRUB update

GRUB update in the distribution controlling the boot sequence (MX-16 in this instance); notice the two Fedora 25 entries, indicating a successful upgrade.

Post-upgrade testing

The new system that came up looked and behaved exactly like the 24th release, but it was the new edition, and it had all the new software and drivers correctly installed. Everything was working, and all my decorations and tweaks had been preserved. Lovely jubbly.

Upgrade complete

The upgrade is complete; all the applications and settings have been correctly preserved, and everything works; no need to cry or vocalize expletives.

Upgrade complete, details

If you don’t really know the fine nuances of my Fedora 24 and Fedora 25 installations, you would be hard pressed to tell difference; but those are two distinct installations on separate partitions, even though they use a fairly similar look & feel and app base. Honest.

I did encounter one small issue – and that was SELinux complaining about stuff it shouldn’t be complaining, but that’s life. I have never been pleased with these alerts, and they remain a nuisance. But that’s a very small price to pay for a complex and intrusive operation like a full system upgrade.

SELinux warning

Conclusion

I do have to admit I am surprised – but also quite pleased – with the outcome of my upgrade test. I was expecting it to succeed, true, but then, I also thought there would be some errors, some small bugs or leftovers. Nothing at all. Like a glove. This is a smooth, clean procedure, and Fedora excelled in delivering a professional result. Given that it has significantly improved in stability and quality, this does not come as a complete shocker, then again, it’s a short-lived fast-paced testbed for Red Hat technologies, it’s meant to be brittle and dangerous and living la vida loca.

This is not the end of this experiment – I need to continue running and testing the system, and make sure Wayland is behaving. Moreover, we should repeat the test on a laptop with an Nvidia card, and that will obviously be a more difficult one, and lo and behold, just recently, I installed Fedora 24 on an older HP laptop, hue hue. We will indeed need to see what the results will come out like. Perhaps horrible. So far though, it would seem the Red Hat family delivers some very consistent, very pleasant results, with CentOS having a spotless record, and Fedora now barging in with its fleeting yet meaningful existence. It also gives me confidence in future endeavors of this kind, and it does show that the world of Linux is trying to embrace quality alongside all the innovation, hecticness, schisms, and re-forking of the cutlery cabinet.

If you are keen on using Fedora as your day-to-day distribution but do dread the ultra-quick support cycle but also do not feel that interested in CentOS, then you will be most pleased to learn that you can continue to play with Fedora without losing support. All it takes is an occasional (and safe) upgrade. Ubuntu and Mint are still valid options, but with my recent annual score highlighting lots of good stuff in the Fedora world, this is one more reason to hang around with this distribution. Fedora be good. Have fun.