Frequently Asked Question

What is the difference between dnf and yum?

yum ("Yellowdog Updater, Modified") was the high-level package manager on Red Hat and Fedora systems from 2003 until it was replaced. It was written in Python 2 and had grown a tangled internal dependency solver that was slow and occasionally produced incorrect results on complex transactions. dnf ("Dandified YUM") was introduced in Fedora 18 (2013) and became the default in Fedora 22 (2015). It is a rewrite using libsolv; the same SAT-based solver that powers zypper, and supports modular content, transaction history with rollback, and Python 3.

The user-facing commands are deliberately similar: dnf install, dnf upgrade, dnf remove, dnf search. On RHEL 8 and newer (and Rocky, Alma, CentOS Stream), yum is now a symlink to dnf for compatibility. Fedora 41 and later ship dnf5, a further rewrite in C++ that is faster again but ships the same surface command set.

Further reading and video