DNF system-upgrades plugin provides three commands: system-upgrade, offline-upgrade, and offline-distrosync. Only system-upgrade command requires increase of distribution major version (--releasever) compared to installed version.
dnf system-upgrade can be used to upgrade a Fedora system to a new major release. It replaces fedup (the old Fedora Upgrade tool). Before you proceed ensure that your system is fully upgraded (dnf --refresh upgrade).
The system-upgrade command also performes additional actions necessary for the upgrade of the system, for example an upgrade of groups and environments.
dnf system-upgrade download --releasever VERSION [Options]
On modular system, also set the module_platform_id. For example, for Fedora 30:
dnf system-upgrade download --releasever 30 [Options]
dnf system-upgrade reboot
dnf system-upgrade clean
dnf system-upgrade log
dnf system-upgrade log --number=<number>
dnf offline-upgrade download [Options]
dnf offline-upgrade reboot
dnf offline-upgrade clean
dnf offline-upgrade log
dnf offline-upgrade log --number=<number>
dnf offline-distrosync download [Options]
dnf offline-distrosync reboot
dnf offline-distrosync clean
dnf offline-distrosync log
dnf offline-distrosync log --number=<number>
Downloads everything needed to upgrade to a new major release.
Prepares the system to perform the upgrade, and reboots to start the upgrade. This can only be used after the download command completes successfully.
Remove previously-downloaded data. This happens automatically at the end of a successful upgrade.
Used to see a list of boots during which an upgrade was attempted, or show the logs from an upgrade attempt. The logs for one of the boots can be shown by specifying one of the numbers in the first column. Negative numbers can be used to number the boots from last to first. For example, log --number=-1 can be used to see the logs for the last upgrade attempt.
REQUIRED. The version to upgrade to. Sets $releasever in all enabled repos. Usually a number, or rawhide.
Redirect download of packages to provided <path>. By default, packages are downloaded into (per repository created) subdirectories of /var/lib/dnf/system-upgrade.
Behave like dnf distro-sync: always install packages from the new release, even if they are older than the currently-installed version. This is the default behavior.
Behave like dnf update: do not install packages from the new release if they are older than what is currently installed. This is the opposite of --distro-sync. If both are specified, the last option will be used. The option cannot be used with the
Applied with log subcommand will show the log specified by the number.
dnf system-upgrade reboot does not create a "System Upgrade" boot item. The upgrade will start regardless of which boot item is chosen.
The DNF_SYSTEM_UPGRADE_NO_REBOOT environment variable can be set to a non-empty value to disable the actual reboot performed by system-upgrade (e.g. for testing purposes).
Since this is a DNF plugin, options accepted by dnf are also valid here, such as --allowerasing. See dnf(8) for more information.
The fedup command is not provided, not even as an alias for dnf system-upgrade.
Upgrading from install media (e.g. a DVD or .iso file) currently requires the user to manually set up a DNF repo and fstab entry for the media.
Typical upgrade usage
dnf --refresh upgrade
dnf system-upgrade download --releasever 26
dnf system-upgrade reboot
Show logs from last upgrade attempt
dnf system-upgrade log --number=-1
Bugs should be filed here:
For more info on filing bugs, see the Fedora Project wiki:
Please include /var/log/dnf.log and the output of dnf system-upgrade log --number=-1 (if applicable) in your bug reports.
Problems with dependency solving during download are best reported to the maintainers of the package(s) with the dependency problems.
Similarly, problems encountered on your system after the upgrade completes should be reported to the maintainers of the affected components. In other words: if (for example) KDE stops working, it's best if you report that to the KDE maintainers.
dnf(8), dnf.conf(5), journalctl(1).
Will Woods <firstname.lastname@example.org>
Štěpán Smetana <email@example.com>
See Authors in your Extras DNF Plugins distribution
2021, Igor Gnatenko, Licensed under GPLv2+