DNF: Fedora Package Manager

DNF: Fedora Package Manager

Bitnesia Aug 16, 2026 6 ID

After studying APT for Ubuntu, it is now time for DNF (Dandified YUM), the package manager used by Fedora Workstation 44. DNF is the successor to YUM that is faster and more accurate in handling dependencies. Through DNF, you can install, update, search for, and remove packages from the Fedora repositories with ease. This chapter guides you through basic DNF operations, how to manage repositories, and how to manually install .rpm files.

It is worth noting that on Fedora Workstation 44, the dnf command you type is actually powered by a new engine called DNF5, a rewrite of DNF in C++ that replaces the older Python‑based version (sometimes referred to as DNF4). This change has been in place since Fedora 41, and since Fedora 44 even graphical applications like GNOME Software use the same engine. The good news is that almost all the basic commands discussed in this chapter work exactly the same way; there is only one small but important difference, which will be mentioned in the "List Installed Packages" section.

Basic DNF Operations

The following are the most frequently used DNF operations.

Checking for Updates

To see which packages have updates available, use dnf check-update.

sudo dnf check-update

This command only checks without making any changes, so you can review the packages that will be updated first.

Upgrading the System

To update all installed packages to their latest versions, use dnf upgrade.

sudo dnf upgrade

This command updates all packages that have newer versions in the repositories, including handling any necessary dependency changes.

Installing a Package

Use dnf install to install a package along with all its dependencies.

sudo dnf install vlc

You can install more than one package at a time by separating package names with spaces.

Removing a Package

Use dnf remove to remove a package from the system.

sudo dnf remove vlc

DNF will remove the package as well as any dependencies that are no longer required by other packages.

Cleaning Up Dependencies

To clean up dependencies that are no longer used by any package, use dnf autoremove.

sudo dnf autoremove

Searching for Packages

To find packages by keyword, use dnf search.

dnf search video player

Viewing Detailed Package Information

Use dnf info to display the description, version, and other information about a package.

dnf info vlc

Listing Installed Packages

To see all packages installed on the system, use dnf list --installed.

dnf list --installed

Note that the --installed option is written with two hyphens in front of the word "installed". This is one of the real differences between DNF5 (used by Fedora Workstation 44) and the older DNF version: previously, you could simply write dnf list installed without the hyphens. In DNF5, if you write it without the hyphens, the command is interpreted as a search for a package named "installed" and will show empty results, not the list of installed packages. So make sure you always include the double hyphen before installed.

This list can be very long, so you will often combine it with grep to filter the results, for example dnf list --installed | grep vlc.

Managing Repositories

DNF retrieves packages from repositories registered on the system. On Fedora, each repository is defined in a separate file.

.repo Files in /etc/yum.repos.d/

Fedora repositories are defined in files with the .repo extension, stored in the /etc/yum.repos.d/ directory. The main Fedora repositories are usually split into several files, such as fedora.repo for official packages and fedora-updates.repo for updates. The format of these .repo files has not changed even though the underlying engine has moved to DNF5, so the explanation in this section remains fully valid.

You can see the list of active repositories with:

dnf repolist

Each .repo file contains settings such as the name, base URL, and whether the repository is active or disabled.

Enabling RPM Fusion (free and nonfree)

RPM Fusion is a third‑party repository that provides packages not included in Fedora for licensing reasons, such as multimedia codecs and proprietary drivers. RPM Fusion is split into two: free for open‑source software and nonfree for software with closed licenses.

To enable both, run:

sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

After the above command finishes, both RPM Fusion free and nonfree are immediately active and ready to use.

Manually Installing an .rpm File with rpm

Sometimes software is distributed as an .rpm file downloaded directly from the developer's website. Such a file can be installed manually using the rpm tool.

sudo rpm -ivh package.rpm

The -i option means install, -v shows the process in detail, and -h displays a progress bar. However, rpm does not resolve dependencies automatically. If installation fails because of unmet dependencies, a better approach is to use DNF directly on the .rpm file.

sudo dnf install ./package.rpm

Using this method, DNF will resolve dependencies from the Fedora repositories automatically. As much as possible, prefer installing from the official repositories rather than manual .rpm files because the official repositories offer better security guarantees.

DNF is your primary gateway for managing software on Fedora Workstation 44. Once you have mastered dnf check-update, upgrade, install, remove, and autoremove, you are already able to handle most day‑to‑day needs. In the next chapter, you will learn about Flatpak and Snap, universal formats that complement traditional package managers for installing modern desktop applications.