How to Upgrade Fedora Linux?

Fedora is a Linux distribution that is sponsored by Red Hat. The best thing is that it is free and open source. It is also available for desktop, server, and IoT systems. It has a different desktop environment like KDE Plasma, XFCE, LXQT, etc.

What will we cover?

In this guide, we will cover how to upgrade Fedora 32 to Fedora 33. We will see three different ways of upgrading Fedora:

  1. Upgrade using Software Center
  2. DNF system upgrade plugin
  3. Upgrade using package manager with dnf only

Things to Do Before Starting

We need to do certain things before starting the process for a smooth upgrade experience.

The first thing is that you should always backup your data before attempting to upgrade. It is highly recommended for any production system.  If you are experimenting with a virtual machine, 0then you don’t have to worry. Second thing, you should have a root account or at least a user account with root access privileges. This is necessary as you cannot run the upgrade commands without the superuser rights.

Method 1. Upgrade using Software Center (recommended for the Fedora Workstation release)

This is the most recommended way to upgrade Fedora Workstation, and it is also the easiest way for beginners. From Fedora 23 Workstation edition, a notification for a new Fedora release starts to appear whenever a new stable release is introduced. Check out the notification or go to Fedora’s graphical software center, you will be presented with a simple update window, as shown below:

When you hit the download button, all the files required for upgrade will be automatically downloaded. When the download is completed, it will ask for a reboot to install the upgraded files. After the reboot, you will be able to see your new release.

Method 2. Using the DNF system upgrade plugin

This is the officially recommended upgrade method for all Fedora installations, except for the Fedora Workstation. It uses dnf-plugin-system-upgrade when performing a system upgrade. This is actually a command-line method as it requires running some command. Okay, let’s dive in to see how this is going to work.

Step 1. First, update your Fedora system with the command:

# dnf upgrade --refresh

This will install all the necessary updates to the system before upgrade. The actual download size may vary for every different system.

This may take a considerable time to download and install all the updates depending on your internet connection speed and system hardware.

Step 2. Once the installation of updates is finished, do a system reboot.

Step 3. After rebooting the system, open a terminal and install the plugin: dnf-plugin-system-upgrade. To do this use the command below:

# dnf install dnf-plugin-system-upgrade

Step 4. Now, we will use the dnf plugin to download the release update packages. Run the below-given command:

# dnf system-upgrade download --refresh --releasever=33

When you run the above command, it will ask to run the “dnf upgrade –refresh” command to ensure that the system is up to date. Press ‘y’ and hit enter, so it can download any new update.

The releasever argument is used to specify the version of Fedora OS we want to install. Here we have specified version number 33, which is the latest available version right now.  To upgrade to a branched release, we need to use 34, or we can take rawhide for upgrading to a rawhide version.

Once the update process is completed, you can download the upgrades as shown below:

As you can see, this version update is about 1.3 G in size, so it may take a long time to download and install all these updates. Wait for the process to complete.

During the upgrade process, it will import a gpg key and ask you to verify it, just press ‘y’ here:

The installation process is almost completed, what’s remaining is to run the command:

# dnf system-upgrade reboot

Note: Please do not run any other command besides “dnf system-upgrade reboot”, otherwise you may need to restart the whole process.

The system will now restart to apply the downloaded system upgrades, as shown below:

After the upgrade process is completed, you should see a new login screen for Fedora 33 OS, as shown here:

We can check the Fedora version with the command:

# /etc/os-release

Since we were using Fedora 32 xfce version, we are upgraded to Fedora 33 xfce. This should be the same if you are upgrading from the gnome version, you should land on gnome Fedora.

Method 3. Upgrade using package manager with dnf only (without using the DNF system upgrade plugin)

The last method is using DNF, which is actually not recommended by Fedora. While upgrading this way, you may encounter general dependency issues.  For any such issue, you can refer to the reference pages and other posts related to the installation guide. This is a very brain-teasing method and should only be used by experienced system administrators.

Step 1. Open a terminal and login as a root user and run the command below:

# systemctl isolate multi-user.target

Step 2. At this point, we have to update the packages of our current Fedora OS with the following command:

# dnf upgrade

Step 3. In case of upgrading across three or more releases or upgrading from an old version of Fedora before Fedora 20, it may require you to import and install the package signing key. Otherwise, it is not required for upgrading across two releases or less from the version of Fedora 20 or later.

So, if it is required to import the key, do run the following command:

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-23-x86_64

Do not forget to replace “23” with your target release like 32 or 33 for the latest Fedora. Also, replace “x86_64” with your system architecture.

Step 4. Clean all the cache of dnf by running:

# dnf clean all

Step 5. Start the upgrade process with the command:

# dnf --releasever=<target_release_number> --setopt=deltarpm=false distro-sync

Step 6. Install new packages for the new version with:

# dnf groupupdate 'Minimal Install'

Other groups like GNOME Desktop, Administration Tools can also be updated as shown here:

# dnf groupupdate "GNOME Desktop"

# dnf groupupdate “Administration Tools”

Step 7. Install the bootloader for your boot-device with the command:

# /usr/sbin/grub2-install BOOTDEVICE

The boot-device is usually /dev/sda or /dev/sdb, depending on your hard disk. If you are using a virtual machine, it might be like the dev/vda.

Step 8. Now, delete unnecessary cache files and other redundant files by cleaning up the system. These files often reside in the following directories:

  1. /var/cache/dnf
  2. /var/lib/mock
  3. /var/cache/mock


In this guide, we have seen how we can upgrade Fedora Linux using three different ways. We have also learned the main difference in using these upgrade methods.  This guide has been successfully tested on Fedora 32 for upgrading to Fedora 33. If you have liked this HowTo guide, please share it with others.

About the author

Ali Imran Nagori

Ali imran is a technical writer and Linux enthusiast who loves to write about Linux system administration and related technologies. You can connect with him on LinkedIn