DNF4-SYSTEM-UPGRADE(8)

πŸ“¦
version 4.7.0 Β· 2 versions
, in centos-stream 10

πŸ¦‹ dnf4-system-upgrade β€” the DNF system-upgrade plugin, bestie edition πŸ¦‹

okay so this is a page from the dnf-plugins-core manual, and it's literally called DNF4-SYSTEM-UPGRADE(8). If you've ever wanted to jump your whole system to the next major release and have it actually work, this is your girl. Let's get into it πŸ’…


✨ NAME ✨

dnf4-system-upgrade β€” the DNF system-upgrade Plugin, no cap.


🌸 DESCRIPTION 🌸

So the DNF system-upgrades plugin gives you three commands, and they're all kind of iconic in their own way: system-upgrade, offline-upgrade, and offline-distrosync. Only the system-upgrade command actually requires you to bump up the distribution major version with --releasever compared to whatever's installed right now β€” the other two are out here living their best lives without that requirement.

dnf system-upgrade is the recommended way to upgrade a system to a new major release, periodt. It replaces fedup (the ancient Fedora Upgrade tool, RIP bozo). Before you proceed, make sure your system is fully upgraded first β€” run dnf --refresh upgrade β€” otherwise you're kind of setting yourself up ngl.

The system-upgrade command also does extra little tasks that are necessary for the upgrade of the system, like upgrading groups and environments. It's giving main character energy, doing the most so you don't have to 🫢


⭐ SYNOPSIS ⭐

dnf system-upgrade download --releasever VERSION [OPTIONS]
dnf system-upgrade reboot
dnf system-upgrade reboot --poweroff
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 reboot --poweroff
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 reboot --poweroff
dnf offline-distrosync clean
dnf offline-distrosync log
dnf offline-distrosync log --number=<number>

πŸŽ€ SUBCOMMANDS πŸŽ€

  • download β€” Grabs literally everything you need to upgrade to a new major release. All the packages, the whole vibe, downloaded and ready ✨
  • reboot β€” Gets the system prepped to do the upgrade, then reboots so the upgrade can start. Heads up: you can only use this after the download command has finished successfully. No skipping steps πŸ’€
  • clean β€” Removes data you previously downloaded. Lowkey you don't have to worry about this one too much, because it happens automatically at the end of a successful upgrade 🌸
  • log β€” Shows you a list of boots where an upgrade was attempted, or shows you the logs from one of those attempts. To see the logs for a specific boot, just pass one of the numbers from the first column. Negative numbers count the boots backwards, from last to first β€” so log --number=-1 shows you the logs from the last upgrade attempt. Obsessed with a shortcut, fr fr 😭

πŸ’– OPTIONS πŸ’–

  • --releasever=VERSION β€” REQUIRED, bestie, don't forget it. This is the version you're upgrading to. It sets $releasever in all your enabled repos. Usually it's a number, or rawhide ✨
  • --downloaddir=<path> β€” Redirects where the packages get downloaded to the <path> you give it. By default, packages go into (per repository created) subdirectories of /var/lib/dnf/system-upgrade πŸŽ€
  • --distro-sync β€” Behaves like dnf distro-sync: always installs packages from the new release, even if they're older than the version currently installed. This is the default behavior, so it's kind of the moment πŸ‘‘
  • --no-downgrade β€” Behaves like dnf update: does not install packages from the new release if they're older than what's currently installed. This is the opposite of --distro-sync. If you specify both, the last option wins. Also, this option cannot be used with the offline-distrosync command β€” that's a hard no 🚫
  • --poweroff β€” When used with the reboot subcommand, the system powers off after upgrades complete instead of restarting. Off you go, sleep tight πŸ’€
  • --number β€” Used with the log subcommand, shows the log specified by the number πŸ”’

🌈 NOTES 🌈

dnf system-upgrade reboot does not create a "System Upgrade" boot item. The upgrade starts no matter which boot item you pick β€” so don't go looking for a special menu entry that isn't there πŸ™ˆ

You can set the DNF_SYSTEM_UPGRADE_NO_REBOOT environment variable to a non-empty value to disable the actual reboot that system-upgrade performs (like, for testing purposes, iykyk).

Since this is a DNF plugin, options accepted by dnf are also valid here β€” --allowerasing, for example. See dnf(8) for more info 🫢

And huge PSA: the fedup command is not provided, not even as an alias for dnf system-upgrade. She's gone, bestie, we don't do that anymore πŸ’…


πŸ’€ BUGS πŸ’€

Upgrading from install media (like a DVD or .iso file) currently requires the user to manually set up a DNF repo and an fstab entry for the media. Yeah. Manual. We don't love it, but that's the situation 😭


πŸ¦‹ EXAMPLES πŸ¦‹

🌸 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

πŸ“ REPORTING BUGS πŸ“

Found a bug? File it here:

https://bugzilla.redhat.com/

For more info on filing bugs, see the Fedora Project wiki:

https://fedoraproject.org/wiki/How_to_file_a_bug_report
https://fedoraproject.org/wiki/Bugs_and_feature_requests

Please include /var/log/dnf.log and the output of dnf system-upgrade log --number=-1 (if applicable) in your bug reports. It helps so much, ngl πŸ™

Problems with dependency solving during the download are best reported to the maintainers of the package(s) that have the dependency problems β€” not us, they know their stuff best πŸ’œ

Same energy for problems you hit on your system after the upgrade completes: report those 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 🌈


πŸ‘‘ SEE ALSO πŸ‘‘

dnf(8), dnf.conf(5), journalctl(1).

πŸ’… Project homepage

https://github.com/rpm-software-management/dnf-plugins-core

🧚 AUTHORS 🧚

Will Woods <wwoods@redhat.com>

Ε tΔ›pΓ‘n Smetana <ssmetana@redhat.com>


✨ AUTHOR ✨

See AUTHORS in your Core DNF Plugins distribution 🫢


2026, Red Hat, Licensed under GPLv2+


and that's the whole page, bestie! πŸ’– Version 4.7.0, dated Aug 10, 2026 β€” that's the flex, go upgrade something, slay, and don't forget --releasever βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from