DNF Package Manager Quick Reference

Peter Boy (pboy), The Fedora Docs Team Version F37 onwards Last review: 2023-08-29

This sections lists the most useful commands provided by the dnf utility. For a complete list of commands, options, and their syntax, see the dnf(8) man page.

dnf help command

Displays detailed information about a command.

$ dnf help upgrade
upgrade [PACKAGE...]

upgrade a package or packages on your system
alias: update
dnf upgrade

Upgrades all packages on the system to the latest version available.

$ sudo dnf upgrade
Updating and loading repositories:
Repositories loaded.
 Package                              Arch        Version            Repository    Size
Upgrading:
 exfatprogs                           x86_64      0:1.4.2-2.fc44     updates       376.7 KiB
   replacing exfatprogs               x86_64      0:1.4.1-1.fc44     updates       376.6 KiB
 xdg-desktop-portal                   x86_64      0:1.22.1-1.fc44    updates       1.9 MiB
   replacing xdg-desktop-portal       x86_64      0:1.22.0-1.fc44    updates       1.9 MiB

Transaction Summary:
 Upgrading:          2 packages
 Replacing:          2 packages

Total size of inbound packages is 677 KiB. Need to download 677 KiB.
After this operation, 31 B extra will be used (install 2 MiB, remove 2 MiB).
Is this ok [y/N]: *y*
[... output truncated ...]
dnf upgrade package_name

Upgrades a package to the latest version available.

$ sudo dnf upgrade thunderbird
Updating and loading repositories:
Repositories loaded.
Package                              Arch     Version                         Repository          Size
Upgrading:
 thunderbird                         x86_64   0:151.0.1-3.fc44                updates        348.1 MiB
   replacing thunderbird             x86_64   0:148.0-2.fc44                  fedora         343.6 MiB
 thunderbird-librnp-rnp              x86_64   0:151.0.1-3.fc44                updates          5.0 MiB
   replacing thunderbird-librnp-rnp  x86_64   0:148.0-2.fc44                  fedora           5.0 MiB

Transaction Summary:
 Upgrading:          2 packages
 Replacing:          2 packages

Total size of inbound packages is 121 MiB. Need to download 121 MiB.
After this operation, 5 MiB extra will be used (install 353 MiB, remove 349 MiB).
Is this ok [y/N]: *y*
[... output truncated ...]
dnf install package_name

Installs a package.

$ sudo dnf install thunderbird
Updating and loading repositories:
Repositories loaded.
Package                          Arch      Version                          Repository            Size
Installing:
 thunderbird                     x86_64    0:151.0.1-3.fc44                 updates          348.1 MiB
Installing dependencies:
 thunderbird-librnp-rnp          x86_64    0:151.0.1-3.fc44                 updates            5.0 MiB

Transaction Summary:
 Installing:         2 packages

Total size of inbound packages is 121 MiB. Need to download 121 MiB.
After this operation, 353 MiB extra will be used (install 353 MiB, remove 0 B).

Is this ok [y/N]: *y*
[... output truncated ...]
Complete!
dnf remove package_name

Uninstalls a package.

$ sudo dnf remove thunderbird
Package                          Arch      Version                          Repository            Size
Removing:
 thunderbird                     x86_64    0:148.0-2.fc44                   fedora           343.6 MiB
Removing unused dependencies:
 thunderbird-librnp-rnp          x86_64    0:148.0-2.fc44                   fedora             5.0 MiB

Transaction Summary:
 Removing:           2 packages

After this operation, 349 MiB will be freed (install 0 B, remove 349 MiB).
Is this ok [y/N]: *y*
[... output truncated ...]
Complete!
dnf check-update

Checks if any updates are available for all packages in the enabled repositories.

$ dnf check-update
Updating and loading repositories:
Repositories loaded.
Upgrades (available for reinstall, available for upgrade)
podman.x86_64 5:5.8.3-1.fc44 updates
dnf search keyword

Search package metadata in the enabled repositories for the specified keyword. By default, the commands searches only in package names and summaries.

$ dnf search freeipa
Repositories loaded.
Matched fields: name, summary
 ansible-freeipa.noarch Roles and playbooks to deploy FreeIPA servers, replicas and clients
 freeipa-desktop-profile.noarch FleetCommander integration with FreeIPA
 freeipa-desktop-profile-common.noarch  Common package for client side FleetCommander integration with FreeIPA
 freeipa-fas.noarch     Fedora Account System extension for FreeIPA
 freeipa-healthcheck.noarch     Health check tool for FreeIPA
 freeipa-selinux.noarch FreeIPA SELinux policy
 freeipa-selinux-luna.noarch    FreeIPA SELinux policy for Thales Luna HSMs
 freeipa-selinux-nfast.noarch   FreeIPA SELinux policy for nCipher nfast HSMs
 python3-freeipa.noarch Lightweight FreeIPA client for Python 3.14
Matched fields: name
 freeipa-client.x86_64  IPA authentication for use on clients
 freeipa-client-common.noarch   Common files used by IPA client
 freeipa-client-encrypted-dns.x86_64    Enable encrypted DNS support for clients
[... output truncated ...]
dnf info package_name

Shows details for a package.

$ dnf info freeipa-server
Updating and loading repositories:
Repositories loaded.
Available packages
Name           : freeipa-server
Epoch          : 0
Version        : 4.13.1
Release        : 12.fc44
Architecture   : x86_64
Download size  : 425.3 KiB
Installed size : 1.1 MiB
Source         : freeipa-4.13.1-12.fc44.src.rpm
Repository     : updates
Summary        : The IPA authentication server
URL            : http://www.freeipa.org/
License        : GPL-3.0-or-later
Description    : IPA is an integrated solution to provide centrally managed Identity (users,
               : hosts, services), Authentication (SSO, 2FA), and Authorization
               : (host access control, SELinux user roles, services). The solution provides
               : features for further integration with Linux based clients (SUDO, automount)
               : and integration with Active Directory based infrastructures (Trusts).
               : If you are installing an IPA server, you need to install this package.
Vendor         : Fedora Project
dnf provides command_or_file

Shows which package provides the specified command or file.

To specify a command:

$ dnf provides ipa-server-install
dnf provides ipa-server-install
Updating and loading repositories:
Repositories loaded.
freeipa-server-4.13.1-12.fc44.x86_64 : The IPA authentication server
Repo         : updates
Matched From :
Filename     : /usr/bin/ipa-server-install

freeipa-server-4.13.1-9.fc44.x86_64 : The IPA authentication server
Repo         : fedora
Matched From :
Filename     : /usr/bin/ipa-server-install

To specify a file:

$ dnf provides /etc/sssd/sssd.conf
Updating and loading repositories:
Repositories loaded.
sssd-common-2.13.1-1.fc44.x86_64 : Common files for the SSSD
Repo         : @System
Matched From :
Filename     : /etc/sssd/sssd.conf

sssd-common-2.12.0-4.fc44.x86_64 : Common files for the SSSD
Repo         : fedora
Matched From :
Filename     : /etc/sssd/sssd.conf

sssd-common-2.13.1-1.fc44.x86_64 : Common files for the SSSD
Repo         : updates
Matched From :
Filename     : /etc/sssd/sssd.conf
dnf history list

Displays a report of the past transactions.

$ dnf history list
ID Command line                                                  Date and time       Action(s) Altered
 9 dnf remove thunderbird                                        2026-06-22 11:44:03                 2
 8 dnf install thunderbird                                       2026-06-22 11:40:13                 2
 7 dnf update                                                    2026-06-22 11:37:12               331
 6 dnf install vim                                               2026-06-22 11:35:55                10
[... output truncated ...]
dnf list --installed

Lists all packages installed on the system.

$ dnf list --installed
Installed packages (available for reinstall, available for upgrade)
7zip.x86_64                                    26.01-1.fc44               updates
NetworkManager.x86_64                          1:1.56.1-2.fc44            updates
NetworkManager-libnm.x86_64                    1:1.56.1-2.fc44            updates
aardvark-dns.x86_64                            2:1.17.1-1.fc44            updates
abattis-cantarell-vf-fonts.noarch              0.301-17.fc44              fedora
abseil-cpp.x86_64                              20260107.1-1.fc44          fedora
adwaita-cursor-theme.noarch                    50.0-1.fc44                fedora
adwaita-icon-theme.noarch                      50.0-1.fc44                fedora
adwaita-icon-theme-legacy.noarch               46.2-7.fc44                fedora
adwaita-mono-fonts.noarch                      50.0-1.fc44                fedora
adwaita-sans-fonts.noarch                      50.0-1.fc44                fedora                                                                            @updates
[... output truncated ...]