From Fedora Project Wiki

Revision as of 17:49, 30 October 2015 by Zbyszek (talk | contribs) (→‎How do I use it?: 1260989 is closed now.)

What is DNF system upgrade?

dnf-plugin-system-upgrade is a plugin for the Dnf package manager which handles system upgrades. It is the recommended upgrade method for Fedora since the release of Fedora 23 Beta. The Changes/DNF_System_Upgrades page documents the initial introduction of this mechanism.

What does DNF system upgrade do?

DNF system upgrade can upgrade your system to a newer release of Fedora, using a mechanism similar to that used for offline package updates. The updated packages are downloaded while the system is running normally, then the system reboots to a special environment (implemented as a systemd target) to install them. Once installation of the updated packages is complete, the system reboots again to the new Fedora release.

How do I use it?

  1. Update your system using the standard updater for your desktop or pkcon or dnf:
    • sudo dnf update
  2. Install the Package-x-generic-16.pngdnf-plugin-system-upgrade package:
    • sudo dnf install dnf-plugin-system-upgrade --enablerepo=updates-testing
  3. Download the updated packages:
    • sudo dnf system-upgrade download --releasever=40 --best [--allow-erasing]
    • --best will cancel the upgrade, with information, if any available upgraded package cannot be installed due to dependency issues (without --best, such packages will simply be left out, possibly resulting in an incomplete upgrade). After inspecting the packages with problems you may decide to go ahead without --best, but it is a good idea to try with --best first.
    • --allowerasing will remove instead of skipping packages with unsatisfiable dependencies. This often happens with packages installed from third-party repositories for which an updated repositories hasn't been yet published. Very careful study the output and examine which packages are going to be removed (ensure that none of them provide essential system functionality) before confirming the operation. It is a good idea to try without --allowerasing first.
  4. Trigger the upgrade process:
    • sudo dnf system-upgrade reboot
  5. Wait for the upgrade process to complete.

Frequently Asked Questions

How do I report issues that I find with upgrades?

First see Common F39 bugs or Common F40 bugs to check if the problem is a very prominent issue we already know of. If it is not there, search for an existing bug report. If you do not see a report that matches your symptoms, you can file a new report from the search page.

If you hit issues after upgrade with a specific package, file a bug against the package with which you are having issues.

Does DNF system upgrade verify the software it runs or installs during upgrade?

Yes. The package signing keys for newer Fedora releases are sent to older Fedora releases in order to allow DNF to verify the integrity of the packages it downloads. You can disable this function with the --nogpgcheck parameter if you need to do so for any reason.

Will packages in third party repositories be upgraded?

Yes, if they are set up like regular DNF repositories and do not hard code the repository path. Commonly-used third party repositories usually work fine, but if you attempt to upgrade prior to or soon after an official Fedora release, they may not have updated their repository paths yet, and DNF may be unable to find their packages. This will usually not prevent the upgrade running successfully, though, and you can update the packages from the third-party repository later.

Can I use DNF system upgrade to upgrade to a pre-release (e.g. a Beta)?

Yes. It should always be possible to attempt such an upgrade. Of course, this function is as subject to temporary breakage as is any other aspect of a pre-release, and generally speaking, the earlier the release in question, the less likely it is to work without problems.