DNF is a software package manager that installs, updates, and removes packages on RPM-based Linux distributions. It automatically computes dependencies and determines the actions required to install packages. DNF also makes it easier to maintain groups of machines, eliminating the need to manually update each one using rpm. Introduced in Fedora 18, it has been the default package manager since Fedora 22.
DNF or Dandified yum is the next generation version of yum. It roughly maintains CLI compatibility with yum and defines a strict API for extensions and plugins. Plugins can modify or extend features of DNF or provide additional CLI commands on top of those mentioned below. If you know the name of such a command (including commands mentioned bellow), you may find/install the package which provides it using the appropriate virtual provide in the form of dnf-command(<alias>) where <alias> is the name of the command; e.g. dnf-command(repoquery) for a repoquery command (the same applies to specifying dependencies of packages that require a particular command).
DNF | |
RPM package | dnf
|
Added in | Fedora 18, and later versions |
Website | https://github.com/rpm-software-management/dnf |
Bugs • Bodhi • Koji |
Features
- Support for multiple repositories
- Simple configuration
- Dependency calculation based on modern depsolving technology
- Faster and less memory-intensive operation
- RPM-consistent behavior
- Package group support, including multiple-repository groups
- Simple interface
- Documented, solid Python API
- DNF runs in both Python 2 and Python 3
- C bindings for lower level libraries:
- hawkey for package querying and depsolving. PackageKit is already making use of hawkey
- librepo for repo operations. PackageKit is already making use of librepo
- libcomps for comps operations
Available commands
autoremove
check
check-update
clean
distro-sync
downgrade
group
help
history
info
install
list
makecache
mark
provides
reinstall
remove
repolist
repository-packages
search
updateinfo
upgrade
upgrade-to
Installation
DNF comes with Fedora since version 18, but it can also be installed by using yum command:
# yum install dnf
As of Fedora 22, yum has been replaced with DNF and doesn't need to be installed.
Usage
In the basic methods, DNF can be used almost exactly as yum to search, install or remove packages:
# dnf search audacity
# dnf install audacity
# dnf remove audacity
Automatic Updates
The DNF-Automatic RPM package as a DNF component provides a service for automatic download and installation of updates. It can automatically monitor and report via email availability of updates, or send a log about downloaded packages and installed updates. See AutoUpdates section or DNF-Automatic page.
System Upgrades
Fedora Products can be upgraded with DNF system upgrade plugin or directly with DNF. See Upgrade section.
Language Support Using DNF
DNF can be used to install or remove Language Support. A detailed description with a list of available languages can be found on Language Support Using Dnf page.
DNF compared with Apt
Users coming from Debian or Ubuntu may find this table on package management comparison useful.
Documentation
3. DNF blog
4. DNF wiki