Skip to content
Search Fedora

    Browse this documentation

    Upgrading to Fedora 45: from 44, step by step

    This page covers one concrete path: upgrading from Fedora 44 to 45. For the mechanism itself (which methods are supported, how offline transactions work) see Upgrade between Fedora releases; for what changed in F45 see Fedora 45: changes, download and upgrade.

    1. Back up your data: if the upgrade fails, a backup is the only thing you can fall back on afterwards.
    2. Read the F45 Release Notes: confirm removals, default changes and the components you depend on.
    3. Bring 44 fully up to date:
    Terminal window
    sudo dnf upgrade --refresh

    Choosing a path: graphical or command line

    Section titled “Choosing a path: graphical or command line”
    • Fedora Workstation: use the upgrade entry in GNOME Software;
    • KDE Plasma: use Upgrade Now in Discover;
    • Server, minimal and custom installs: use the DNF System Upgrade command line.

    The command line in three stages: download, reboot, install

    Section titled “The command line in three stages: download, reboot, install”
    Terminal window
    sudo dnf system-upgrade download --releasever=45

    The system remains usable during the download stage; when it finishes, run:

    Terminal window
    sudo dnf system-upgrade reboot

    The system reboots into a transitional environment that performs the install, then reboots into 45. The install stage does not run in your current system, so an interrupted upgrade cannot simply be re-run.

    Three things differ from 44 and are worth confirming one by one:

    1. Repository configuration location: packaged repositories moved from /etc/yum.repos.d to /usr/share/dnf5/repos.d, and GPG keys live in /usr/share/pki/rpm-gpg. Confirm repositories with dnf repolist, then look at ls /usr/share/dnf5/repos.d; custom repositories stay in /etc/yum.repos.d.
    2. Signature checking is enforced: the rpm layer refuses unsigned packages; dnf refuses them from repositories as well, while the local-file path only warns. Confirm signatures before installing third-party RPMs; details in Fedora security updates and advisories.
    3. The console moved to kmscon: on Server and Workstation the VT console is provided by userspace kmscon; Cloud images do not enable it. When local console behaviour differs from what you expect, check this first.

    Checking after the upgrade: a block you can copy

    Section titled “Checking after the upgrade: a block you can copy”

    Once the upgrade finishes and you reboot into it, run these instead of going by feel:

    Terminal window
    grep -E "^(NAME|VERSION_ID|VARIANT)" /etc/os-release
    rpm -q rpm
    dnf repolist | tail -n +2 | wc -l
    ls /usr/share/dnf5/repos.d/*.repo | wc -l
    ls /etc/yum.repos.d/*.repo 2>/dev/null | wc -l

    Measured output on F45:

    NAME="Fedora Linux"
    VERSION_ID=45
    VARIANT="Cloud Edition"
    rpm-6.1.0-1.fc45.x86_64
    4
    4
    0

    How to read it:

    ItemExpectedWhat it means otherwise
    VERSION_ID45the upgrade did not complete, still on the old release
    rpm -q rpm6.1.xstill rpm 6.0.x from F44, the upgrade did not take effect
    repolist countmatches the repositories you enablerepositories lost, check /usr/share/dnf5/repos.d
    /etc/yum.repos.d count0 with no custom repositoriesnon-zero just means you have custom ones, which is normal

    That last line matters: an empty /etc/yum.repos.d is the normal state on F45, not lost repositories — the packaged ones moved to /usr/share/dnf5/repos.d, see repository configuration moves to /usr.

    • Download-stage failure: read the error (dependencies, third-party sources, keys), fix the cause and download again; do not retry blindly.
    • Install-stage failure: restore a bootable system first, then talk about finishing the upgrade; the rescue kernel and booting the old kernel are covered in Troubleshooting a failed upgrade.
    • Something is off after the upgrade: confirm the version in /etc/os-release and dnf repolist before deciding whether the upgrade is incomplete or the new release behaves differently.