28 March 2016

Upgrade GNU/Linux Fedora from 18 to 22 (with fedup)

Although FEDora UPgrader (fedup) has been introduced in Fedora 17, there were too much problems to be used properly.
In addition fedup has been deprecated since

Fedora 21, where DNF system upgrade plugin became the recommended method to upgrade Fedora.

This article will explain how to use fedup to Upgrade from Fedora 18 to Fedora 22, in a single iteration.

To begin, unfortunately fedup can't be used to upgrade Fedora 17, because of following issues:
 - bug #980918: fails with error 'NameError: global name 'thislevel' is not defined' (fixed by this patch)
 - Common Bug with fedup 0.7: reboots shortly after booting the System Upgrade option (fixed installing the Fedora 18 fedup 0.8 base version)
 - Common Bug with fedup 0.8: fails due to GPG key problems (fixed using the --nogpgcheck option)
 - bug #1043981: fails with error 'AttributeError: 'ProblemSummary' object has no attribute 'format_details'' (fixed by this patch)
 - and eventually ... nothing happens after booting the System Upgrade option
After this long haul, it was obvious fedup was not viable enough to be used on Fedora 17; I recommend to upgrade from Fedora 17 to 18 with yum.

After that, you can use fedup to upgrade directly to Fedora 21 (or even 22) in a single iteration.
As usual, you should disable the graphical mode during the upgrade process to avoid some issues:
systemctl set-default multi-user.target

Then, you may have some issues with kmod packages, like those for VirtualBox, or deprecated packages. Simply uninstall them for now, keep them in mind (or on a paper) and reinstall them in the target distribution.

There is some situation where there are conflicts between packages because they have been fully replaced. For instance it's the case with mariadb and mariadb-server packages which replaced mysql and mysql-server ones.

It may be interesting to keep several kernel versions in case you need to switch back to a previous version to fix/manage some hardware issues (I faced none with my RAID managed with mdadm - but only 2 resync for which I paused the upgrade process till the end, for stability & data security reason).
For that, you can update the installonly_limit parameter of your package manager configuration file (/etc/dnf/dnf.conf or /etc/yum.conf).

You can then prepare the upgrade process, launching fedup:
dnf install fedup
fedup --network 22 --nogpgcheck

If anything goes wrong, you should consider fixing the issue before keeping on.

When everything is OK, you can then reboot, and select the new fedup option in the Boot Menu.
After booting like usual, the system will then upgrade all the packages one after the other (like we used to see with yum upgrade). Check this page for more information.

Before rebooting, you should ensure system is OK.
To check the services which failed to start:
systemctl --failed

To get status of specific failing service (e.g. kdump):
systemctl status kdump

To get full log with enhanced information:
journalctl -x

Ensure, there is no dependencies problem.

And like usual, check and merge the new configuration files with 'rpmnew' suffix (which can now easily be performed with rpmconf tool).

After having fixed everything, you can switch back to graphical mode as default:
systemctl set-default graphical.target

Finally reboot and enjoy your upgraded Fedora - remember to reinstall things if you removed them before upgrading process (like VirtualBox).

No comments:

Post a Comment

Thank you for your visit, let's share your point of view: