Fedora 38 has been released!! This step by step tutorial explains how to upgrade to Fedora 38 from Fedora 37 and older versions. If you're already using Fedora 37, you can now safely upgrade to Fedora 38 desktop or server edition for latest features, performance and stability improvements.
Table of Contents
Prerequisites
Before upgrading to Fedora 38, you need to do a few important tasks.
- It is strongly RECOMMENDED to Backup your important data before upgrading to Fedora 38. 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 38 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 38 common issues and decide if you want to proceed.
- Upgrades to the very next release (e.g. 37 to 38) as well as upgrades skipping one release (e.g. 36 to 38) are both supported. Upgrades across more than two releases are not supported. For example - you can't go from Fedora 35 to 38. 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. 35 to 36) and then try to upgrade from 36 to 38. It is always recommended to upgrade to next release before it reaches EOL.
Well, without further ado, let us start Fedora 38 upgrade task!
Upgrade to Fedora 38 from Fedora 37
Fedora 38 upgrade task can be done in two methods. We can upgrade to Fedora 38 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 37 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
Sample Output:
As you can see, we have currently Fedora 37 on our system. Let us upgrade Fedora 37 to Fedora 38 via any one of the methods given below.
1. Upgrade to Fedora 38 Workstation via GNOME Software
Step 1: Open your Gnome Software Center and go to Updates section. You will see a notification that says - Fedora 38 Now Available. Click the Download button to download Fedora 38 packages.
The required packages for upgrading to Fedora 38 will be downloaded now. This will take a while depending on the Internet speed.
Step 2: Once the Fedora 38 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.
Enter the sudo password to trigger the updates.
One more pop up window will appear again and prompt you to press "Restart & Install" button.
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 the updates have installed, the system will automatically reboot and log in to the brand new Fedora 38 workstation 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 38 Gnome workstation edition!
Step 4: Open a Terminal window and check the installed Fedora version using command:
$ cat /etc/fedora-release Fedora release 38 (Thirty Eight)
To view the detailed output, run:
$ cat /etc/os-release
Sample output:
NAME="Fedora Linux" VERSION="38 (Workstation Edition)" ID=fedora VERSION_ID=38 VERSION_CODENAME="" PLATFORM_ID="platform:f38" PRETTY_NAME="Fedora Linux 38 (Workstation Edition)" ANSI_COLOR="0;38;2;60;110;180" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:38" DEFAULT_HOSTNAME="fedora" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f38/system-administrators-guide/" SUPPORT_URL="https://ask.fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=38 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=38 SUPPORT_END=2024-05-14 VARIANT="Workstation Edition" VARIANT_ID=workstation
Alternatively, You can check the Fedora version under Settings -> About section.
2. Upgrade to Fedora 38 Server from Commandline
This method is for those who runs Fedora server edition in their system.
Step 1: Update your current Fedora 37 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, which will help you to download Fedora 38 packages, by running the following command:
$ sudo dnf install dnf-plugin-system-upgrade
Step 3: Download Fedora 38 packages using command:
$ sudo dnf system-upgrade download --releasever=38
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 --allowerasing
option.
$ sudo dnf system-upgrade download --releasever=38 --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 38 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 38 desktop would be fedora38. If you're anything like me, change the hostname to match with your current version.
To change hostname, run:
$ sudo hostnamectl set-hostname fedora38
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
$ remove-retired-packages
5. Update System Configuration Files
To update system configuration files, use rpmconf
tool.
To install rpmconf
tool, run:
$ sudo dnf install rpmconf
Once the install is complete, run the following command:
$ sudo rpmconf -a
6. Clean Up Old Kernels
The 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:
$ sudo reboot
Start using the latest Fedora 38 edition.
Conclusion
In this guide, we have seen how to upgrade to Fedora 38 from Fedora 37 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.
Related Read:
1 comment
worked like a champ