DNF

What DNF is
DNF is a free, open-source package manager for RPM-based Linux distributions and a replacement for YUM. It installs packages and dependencies from enabled repositories or local RPM files, with selections by version, URL, group, module, or provided file path. Users can remove packages, query installed, available, extra, obsolete, recent, and upgradeable packages, and view transaction history when recording is enabled. Repository metadata can be cached, while dependency resolution, private registry authentication, and offline installation are supported. DNF Automatic checks for updates and can notify, download, or download and install them through systemd timers. Reports can go to standard output, email, MOTD messages, or configured commands, including security-advisory-only updates. A Python API supports plugins and applications embedding package management; its documented API follows semantic versioning, but undocumented elements may change. DNF handles RPM, modulemd, and comps package structures. The repository identifies the license as GPL-2.0.
Who it suits
DNF suits system administrators and developers managing packages on RPM-based Linux systems, including automated or offline environments.
What it does well
- Free GPL-2.0 software
- Resolves package dependencies
- Supports offline installation
- Automatic update scheduling
- Python API available
What to know first
- Modularity is deprecated for future DNF5
- DNF and YUM do not share transaction data
- Undocumented API elements may change
Verdict
DNF covers interactive, automated, and programmable package management for RPM-based Linux. Administrators should account for its YUM transaction-data separation and the stated modularity deprecation.
Facts from DNF's own pages
- API stability
- The documented Python API follows semantic versioning, and undocumented API elements may change between releases. · dnf.readthedocs.io, 12 Oct 2026
- Automation
- DNF Automatic can check for updates and be configured to notify, download packages, or download and install them using systemd timers. · dnf.readthedocs.io, 12 Oct 2026
- Compatibility caveat
- DNF and YUM can be installed side by side, but they do not share transaction data, which can limit decisions such as autoremove. · dnf.readthedocs.io, 12 Oct 2026
- Dependency resolution
- Yes · dnf.readthedocs.io, 22 Sept 2026
- Deprecated feature
- DNF documentation says modularity is deprecated and its functionality will be removed in a future DNF5 release. · dnf.readthedocs.io, 12 Oct 2026
- Developer API
- DNF provides a Python API for plugins and applications that embed DNF to perform package management tasks. · dnf.readthedocs.io, 12 Oct 2026
- Install packages
- The install command installs requested packages and their dependencies, and can also accept module or group specifications. · dnf.readthedocs.io, 12 Oct 2026
- Intended users
- A documented use case is for system administrators to ensure an operating system has specified packages, files, providers, or groups. · dnf.readthedocs.io, 12 Oct 2026
- License
- Fedora's package page lists DNF's licenses as GPL-2.0-or-later AND GPL-1.0-only. · packages.fedoraproject.org, 12 Oct 2026
- Maintainers
- Fedora's package page lists five maintainers: jmracek, dmach, jrohel, pkratoch, and mblaha. · packages.fedoraproject.org, 12 Oct 2026
- Offline installation
- Yes · dnf.readthedocs.io, 22 Sept 2026
- Operational caveat
- The FAQ says DNF and YUM do not share additional data about installed packages and transactions, which can limit how completely autoremove handles dependencies when both are used. · dnf.readthedocs.io, 12 Oct 2026
- Package formats
- RPM packages; modulemd modules; comps groups and environments · dnf.readthedocs.io, 22 Sept 2026
- Package management
- DNF lets users install packages from repositories or local RPM files, including packages selected by version, URL, group, or provided file path. · dnf.readthedocs.io, 12 Oct 2026
- Package queries
- DNF can list RPM packages filtered by whether they are installed, available, extra, obsolete, recent, or upgrades. · dnf.readthedocs.io, 12 Oct 2026
- Package removal
- The remove command can uninstall specified packages and remove older versions of duplicated packages. · dnf.readthedocs.io, 12 Oct 2026
- Private registry auth
- Yes · dnf.readthedocs.io, 22 Sept 2026
- Purpose
- DNF is a package manager for RPM-based Linux distributions and replaces YUM. · github.com, 12 Oct 2026
- Python API
- The Python API is intended for plugins that extend a system's DNF installation and applications that embed DNF for package management tasks. · dnf.readthedocs.io, 12 Oct 2026
- Reporting
- DNF Automatic can report results through standard output, custom commands, email, or a message of the day file. · dnf.readthedocs.io, 12 Oct 2026
- Repositories
- DNF uses enabled repositories to obtain package data and can cache their metadata. · dnf.readthedocs.io, 12 Oct 2026
- Security updates
- DNF Automatic can be configured to consider only updates with an issued security advisory. · dnf.readthedocs.io, 12 Oct 2026
- Supported platforms
- RPM-based Linux distributions · dnf.readthedocs.io, 22 Sept 2026
- Transaction history
- The history command displays past transactions and can act on that information when history recording is enabled. · dnf.readthedocs.io, 12 Oct 2026
Where DNF stands on Freedom251
- App Installation#22 of 24
- Package Managers#90 of 93