How to Upgrade to Fedora 38 from Fedora 37

Fedora 38 is the latest release of the popular Linux distribution, bringing significant updates to enhance its robustness, security, and ease of use. Notable changes in this release include initial Unified Kernel support, live media modernization with a shorter shutdown timer, and Ruby and PHP version updates.

The Workstation edition of Fedora 38 stands out with its GNOME 44 desktop environment, offering an authentic and intuitive user experience. The latest version of GNOME features a background-apps feature in the system tray menu, expanded folder views in Files (aka Nautilus), and image previews in the file-open dialog.

In addition, Fedora 38 offers various desktop environment flavors, including KDE Plasma 5.27, Xfce 4.18, LXQt 1.2.0, and MATE 1.26, catering to the diverse preferences of its users. Fedora LXQt flavor also introduces an aarch64 ISO image. The Fedora team is introducing an official Sway spin and an official Budgie spin in Fedora 38, adding lightweight yet featureful desktop environments.

Moreover, Fedora 38 now offers unrestricted access to Flathub packages, making it more convenient for users to install and manage software. Additionally, the default systemd unit shutdown timer is now reduced to 45 seconds, addressing the issue of buggy services that can stall the shutdown process. Connecting to X server from a different endian system is disabled by default due to security concerns.

To upgrade to Fedora 38 from Fedora 37, users can use the dnf package manager with the command line terminal. This guide will demonstrate how to perform the upgrade.

Pre-Upgrade Checklist

Update Fedora 37

To begin, update your system to ensure all packages are current. This is crucial when upgrading to a new OS version. Open the terminal and enter the following command:

sudo dnf upgrade --refresh

It may take some time to complete the update process. Ensure your system is up to date before proceeding to the next step.

Remove Old Obsolete Packages

Cleaning up your existing Fedora system by removing old packages is a good idea. To do this, enter the following command in the terminal:

sudo dnf autoremove

This will remove any old packages no longer needed on your system.

Increase DNF Speed / Add DNF Mirrors

Upgrading to Fedora 38 will require downloading many packages, which can take time. Additionally, even after upgrading to Fedora 38, you may want to add some performance settings to the DNF package manager to speed things up. To do this, you can add DNF mirrors and servers hosting Fedora packages. This lets you download packages from a server closer to your location, improving the download speed.

If you’re interested in configuring DNF for faster performance, check out my guide on increasing DNF Speed on Fedora Linux.

Upgrade Fedora 37 to Fedora 38

First, open your Fedora terminal and install the DNF-plugin-system-upgrade package. While this package should already be installed by default, it’s important to run this command to ensure it’s on your system:

sudo dnf install dnf-plugin-system-upgrade

Next, run the system-upgrade command to download the Fedora 38 release. Enter the following command in the terminal:

sudo dnf system-upgrade download --releasever=38

Example output:

This will download all the packages necessary for the upgrade process. Note that this can take some time, depending on the speed of your internet connection and the number of packages that need to be downloaded.

Upgrade Command Troubleshoot

If you encounter issues while upgrading to Fedora 38, try the following troubleshooting steps:

Add –allowerasing to the upgrade command

If you encounter issues during the upgrade process, you may need to add the –allowerasing option to your upgrade command. This allows DNF to remove packages that may be causing conflicts during the upgrade. To do this, enter the following command in the terminal:

sudo dnf system-upgrade download --releasever=38 --allowerasing

Re-sync your system

If the –allowerasing option does not work, you may need to re-sync your Fedora 37 system using the following command:

sudo dnf distro-sync

Reset SELinux (if needed)

If you’ve exhausted all other options and are still encountering issues, running an SELinux reset may help. However, for users encountering this should only be used as a last resort and only if you’ve previously adjusted SELinux permissions. To reset SELinux, enter the following command in the terminal:

sudo fixfiles -B onboot

This command will reset SELinux and apply any necessary changes during the next system boot.

Begin Fedora 38 Upgrade

Once you have completed the initial steps, enter the following command to download the necessary packages for the upgrade process:

sudo dnf system-upgrade download --releasever=38


You will be prompted with a message about package installation, upgrade, and downgrade, as well as the download size. Review the information and press ‘y’ to continue with the installation.


If the GPG keys are imported successfully, you will see a message confirming this.

Key imported successfully

Once the package download is complete, you must reboot your system to begin the final installation process.


Enter the following command in the terminal:

sudo dnf system-upgrade reboot

The system will reboot, and a progress bar will indicate the final installation progress.

Example of Reboot upgrade in progress:

Once the upgrade is complete, Fedora will return you to the login screen. Log in to your system to begin using Fedora 38.

Log in to Fedora 38

After completing the upgrade to Fedora 38 and logging in, you’ll notice some changes to the user interface. These include a new default background, updated icons, and a refreshed wallpaper.

Fedora 38 Post Upgrade Cleanup

After upgrading to Fedora 38, it is recommended to perform some cleanup tasks to ensure that your system is running smoothly. Here are some post-upgrade cleanup steps to follow:

First, remove any old and obsolete packages by running the following command:

sudo dnf system-upgrade clean

Example output:

Cleaning up downloaded data...

Removing any broken symlinks on your system is also a good idea. To do this, run the following command:

sudo find /usr -type l -xtype l -delete

If you want to see a list of all broken symlinks before cleaning them up, you can run the:

sudo symlinks -r /usr | grep dangling

Finally, if you want to change the hostname of your Fedora system, you can use the following command:

sudo hostnamectl set-hostname --static fedora-38


In conclusion, upgrading to Fedora 38 is a straightforward process that can be completed using the dnf package manager. With Fedora 38, you’ll get access to new features and improvements, such as initial support for the Unified Kernel, modernized live media, a shorter shutdown timer, and updates to Ruby and PHP. Additionally, the GNOME 44 desktop environment provides an authentic and updated desktop experience, while other desktop flavors like KDE Plasma and Xfce have also been updated with new features. Following the upgrade, cleaning up tasks, such as removing old and obsolete packages and cleaning up downloaded data, is important. By following these steps, you can ensure your system runs smoothly and efficiently on Fedora 38.

Additional Resources

Below is a list of official Fedora wikis, community forums, and other resources that can provide helpful information when upgrading Fedora from version 37 to 38:

Share to...