Great news for Fedora users! Fedora 37 has been released!! This step by step tutorial explains how to upgrade to Fedora 37 from Fedora 36 and older versions. If you're already using Fedora 36, you can now safely upgrade to Fedora 37 desktop or server edition for latest features, performance and stability improvements.
Before upgrading to Fedora 37, you need to do a few important tasks.
- It is strongly RECOMMENDED to Backup your important data before upgrading to Fedora 37. This should be your first step when you want to upgrade any system, regardless of the underlying operating system. Make sure you've backup of all important files, directories, configuration settings, browser bookmarks, and dot files etc.
- Fedora 37 upgrade will probably take several minutes to complete. So make sure you've stable Internet connection and uninterrupted power supply.
- During upgrade, your system will reboot automatically to apply updates. So ensure that there aren't any important jobs currently running (E.g. Scheduled backups).
- See the Fedora 37 common issues and decide if you want to proceed.
- Upgrades to the very next release (e.g. 36 to 37) as well as upgrades skipping one release (e.g. 35 to 37) are both supported. Upgrades across more than two releases are not supported. For example - you can't go from Fedora 34 to 37. It might work sometimes. However, if you encounter with any issues, you won't get any support. In such cases, first upgrade to next release (i.e. 34 to 35) and then try to upgrade from 35 to 37. It is always recommended to upgrade to next release before it reaches EOL.
Well, without further ado, let us start Fedora 37 upgrade task!
Upgrade to Fedora 37 From Fedora 36
We can upgrade to Fedora 37 via GNOME software (GUI) and from command line (CLI). First, we will see the Graphical method using GNOME Software. This is suitable for those who use Fedora desktop edition.
Before get started, update your Fedora 36 system:
$ sudo dnf --refresh update
$ sudo dnf upgrade
Reboot your system to apply the updates:
$ sudo reboot
Let us check the current version using the following commands:
$ cat /etc/fedora-release
To view the detailed version output, run this instead:
$ cat /etc/os-release
Now, follow any one of the below methods to upgrade Fedora to 37 desktop or server.
1. Upgrade To Fedora 37 Workstation Via GNOME Software
Step 1: Open your Gnome Software Center and go to Updates section. You will see a notification that says - Fedora 37 Now Available. Click the Download button to download Fedora 37 packages.
The required packages will be downloaded now. This will take a while depending on the Internet speed.
Step 2: Once the download is complete, you will be prompted to restart and upgrade. Click the "Restart & Upgrade" button to continue installing the updates.
Step 3: A new pop up window will appear and prompt you to click Restart & Install Upgrade button. Just click on it to reboot your Fedora system.
After system reboot, the downloaded packages will be installed. This will take a while depending on the number of packages to install. Make sure your system is plugged into the power outlet and you have uninterrupted power supply.
After installing the updates, the system will automatically reboot and log in to the brand new Fedora 37 desktop.
You can check if your Fedora system is up-to-date under Updates section in Gnome Software.
Congratulations! We've successfully upgraded to Fedora 37 workstation!
Step 4: Open a Terminal window and check the installed Fedora version using command:
$ cat /etc/fedora-release Fedora release 37 (Thirty Seven)
To view the detailed output, run:
$ cat /etc/os-release
NAME="Fedora Linux" VERSION="37 (Workstation Edition)" ID=fedora VERSION_ID=37 VERSION_CODENAME="" PLATFORM_ID="platform:f37" PRETTY_NAME="Fedora Linux 37 (Workstation Edition)" ANSI_COLOR="0;38;2;60;110;180" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:37" DEFAULT_HOSTNAME="fedora" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f37/system-administrators-guide/" SUPPORT_URL="https://ask.fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=37 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=37 VARIANT="Workstation Edition" VARIANT_ID=workstation
Alternatively, You can check the Fedora version under Settings -> About section.
2. Upgrade To Fedora 37 Server From Commandline
This method is for those who runs Fedora server edition in their system.
Step 1: Update your current Fedora 36 server using commands:
$ sudo dnf --refresh update
$ sudo dnf upgrade
Reboot your system to apply the updates.
$ sudo reboot
Step 2: Install dnf upgrade plugin by running the following command:
$ sudo dnf install dnf-plugin-system-upgrade
Step 3: Download Fedora 37 packages using command:
$ sudo dnf system-upgrade download --releasever=37
This command will download all latest packages and display the summary of what packages are going to be replaced, updated, upgraded, or downgraded. This task should take several minutes to complete as it downloads a lot of packages.
If some of your packages have unsatisfied dependencies, the upgrade will refuse to continue until you run it again with an extra
$ sudo dnf system-upgrade download --releasever=37 --allowerasing
Step 4: Once all packages are downloaded, run the following command to start actual upgrade.
$ sudo dnf system-upgrade reboot
Your system will reboot automatically and upgrade task will start to install all downloaded packages.
Upon successful upgrade, the system reboots into the new Fedora 37 server edition.
Fedora Post-upgrade Tasks
In this section, we will do a few post-upgrade tasks such as changing the hostname, removing unwanted packages, updating configuration files, deleting orphaned symlinks, and cleaning up old kernels etc.
The steps provided below are applicable for both Fedora desktop and server editions.
1. Change Hostname
I usually use distribution's name as hostname. For example, the hostname for my Fedora 37 desktop would be fedora37. If you're anything like me, change the hostname to match with your current version.
To change hostname, run:
$ sudo hostnamectl set-hostname fedora37
2. Clean DNF Metadata Cache
After upgrade, the cached metadata and transacation can cleared using the following commands:
$ sudo dnf system-upgrade clean
$ sudo dnf clean packages
3. Remove Old Packages
List all packages with broken or unsatisfied dependencies, run:
$ sudo dnf update
$ sudo dnf repoquery --unsatisfied
List all duplicate packages using command:
$ sudo dnf repoquery --duplicates
List all packages that are not in the repositories:
$ sudo dnf list extras
If you don't need them anymore, simply run the following commands to remove old, and unused packages.
$ sudo dnf remove $(sudo dnf repoquery --extras --exclude=kernel,kernel-*)
$ sudo dnf autoremove
4. Clean Up Retired Packages
A few packages will be retired in each Fedora release. They could be obsolete or the maintainer abandoned the packages. The retired packages packages will not get any updates. Not even security updates.
To remove obsolete and retired packages, run:
$ sudo dnf install remove-retired-packages
5. Update System Configuration Files
To update system configuration files, use
rpmconf tool, run:
$ sudo dnf install rpmconf
Once the install is complete, run the following command:
$ sudo rpmconf -a
6. Clean Up Old Kernels
dnf autoremove command will not remove any unused kernels to avoid unintentional Kernel removals. If you want to remove old kernels, you can use the following command:
$ sudo dnf remove $(dnf repoquery --installonly --latest-limit=-3)
The above command will remove all old kernels and retain only the latest 3 kernels.
Heads Up: It is HIGHLY RECOMMENDED to keep at least two kernels. Because, if there is a problem in the current Kernel version after upgrading, you can safely switch to the older kernel.
7. Remove Broken Symlinks
After system upgrade, there would be some unused symlinks left in your system. You need to find and delete the dangling soft links or symlinks that don't point anywhere.
To find broken symlinks in
/usr directory, run:
$ sudo symlinks -r /usr | grep dangling
To remove the dangling symlinks, run:
$ sudo symlinks -r -d /usr
Finally, reboot your system to start using the Fedora 37 edition.
In this guide, we have seen how to upgrade to Fedora 37 from Fedora 36 via Gnome Software center and from terminal. At the end, we included a few post-upgrade steps that needs to be done to cleanup the newly upgraded fedora system.
beautiful article, thank you
Thank you, Senthilkumar Palani!
It was very easy to follow your instructions for Fedora 37 upgrade.