Howto Upgrade Fedora 31 to Fedora 32 using the CLI

I want to upgrade the Fedora version 31 to Fedora 32 Linux server using the command line option. How do I upgrade Fedora 31 to 32?

Fedora Linux is another popular open-source Linux distribution targeted at desktop/laptop and server users who want cutting edge software in binary format. The latest version of Fedora is 32. Fedora version 32 released on April 28, 2020. This page shows you how to upgrade the existing version of Fedora Linux 31 to 32 using the dnf command.
Tutorial details
Difficulty level Easy
Root privileges Yes
Requirements Fedora Linux
Est. reading time 30m

Procedure to upgrade Fedora 31 to Fedora 32 Linux server

  1. Create a backup of your Fedora server or cloud box/VM.
  2. Upgrade all installed packages of Fedora version 31 by running sudo dnf upgrade --refresh command.
  3. Reboot the Fedora Linux system by tying the sudo reboot command if kernel update was installed.
  4. Install the Fedora update utility, run: sudo dnf install dnf-plugin-system-upgrade
  5. Start the upgrade procedure and download packages, run: sudo dnf system-upgrade download --releasever=32
  6. Reboot the box and complete upgrade, run: sudo dnf system-upgrade reboot
  7. Verify upgrades

Step 1 – Backup your Fedora server

You must keep backups of all critical data, files, and databases before you type any one of the following commands. In some cases, an upgrade may fail, and you can always go back to backups to restore your system or data. Next, I am going to log in to my Fedora server using the ssh command:
ssh user@fedora-server-ip-here

Step 2 – Update existing Fedora software and apps

It is time to apply and upgrade patches to already installed apps. Run the following dnf command:
sudo dnf update
## OR ##
dnf --refresh upgrade

Sample outputs:

Last metadata expiration check: 0:10:48 ago on Tuesday 28 April 2020 02:58:51 PM UTC.
Dependencies resolved.
 Package                      Arch   Version                     Repo     Size
 NetworkManager               x86_64 1:1.20.10-1.fc31            updates 2.0 M
 NetworkManager-bluetooth     x86_64 1:1.20.10-1.fc31            updates  50 k
 NetworkManager-libnm         x86_64 1:1.20.10-1.fc31            updates 1.6 M
 libatomic_ops                x86_64 7.6.10-2.fc31               fedora   36 k
 libtool-ltdl                 x86_64 2.4.6-31.fc31               fedora   37 k
 python3-pydbus               noarch 0.6.0-9.fc31                fedora   52 k
Installing weak dependencies:
 elfutils-debuginfod-client   x86_64 0.179-1.fc31                updates  34 k
 reportd                      x86_64 0.7.3-1.fc31                updates  56 k
Transaction Summary
Install   14 Packages
Upgrade  332 Packages
Total download size: 353 M
Is this ok [y/N]: y

Reboot the Fedora Linux server

Issue any one of the following commands:
sudo reboot
## OR ##
sudo shutdown -r now
## OR ##
sudo systemctl reboot

Sample outputs:

Connection to closed by remote host.
Connection to closed.

Step 3 – Installing the DNF plugin on Fedora

We need to install a unique tool written in Python3 called python3-dnf-plugin-system-upgrade. It is nothing but a system upgrade plugin for the DNF command, which enables offline system upgrades using the “dnf system-upgrade” command. In other words, type the following command to install the same:
sudo dnf install dnf-plugin-system-upgrade

Step 4 – Upgrading Fedora 31 to Fedora 32 using the CLI

So far, we backed up and verified our Fedora box, applied all patches, upgraded apps, and installed the dnf plugin. It is time to download Fedora 32 packages and start the upgrade procedure by typing the following command:
sudo dnf system-upgrade download --releasever=32
You will be promoted as follows, and you need to type “Y” to continue with the upgrade procedure:

Before you continue ensure that your system is fully upgraded 
by running "dnf --refresh upgrade". Do you want to continue [y/N]: y

As soon as you confirmed upgrade, the dnf will begin downloading all of the upgrades for your server/desktop onto a local hard disk and prepare the update system:

Reboot to complete the upgrade procedure

Finally, you will get confirmation about downloads as follows:

Download complete! Use 'dnf system-upgrade reboot' to start the upgrade.
To remove cached metadata and transaction use 'dnf system-upgrade clean'
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.

In other words, we downloaded all updated packages for Fedora version 32. It is time to reboot the systems. Hence, type the following command:
sudo dnf system-upgrade reboot
Once the system restarted, the dnf will begin the upgrade process. It will take some time to install all those downloaded packages, so you have to wait. Here is a screenshot showing upgrade progress:

Step 5 – Verification

Use the following cat command to verify Fedora Linux version:
cat /etc/fedora-release

Find Fedora Linux kernel version too using the uname command:
uname -mrs


Congratulations! We just upgrade to Fedora 32, and it was successful. Now you can test your apps and code. See Fedora Linux project home page here for all other details see this page here.

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 2 comments so far... add one

CategoryList of Unix and Linux commands
Disk space analyzersdf ncdu pydf
File Managementcat cp mkdir tree
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
2 comments… add one
  • Foo Sep 26, 2020 @ 14:29

    Thank You!

  • Toleg Feb 20, 2021 @ 0:36

    Many thanks.
    Described process is almost identical to the “official” one, but still very useful because of couple of new checking commands.

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum