After release CentOS 8, some guy asks the question of why yum replace with DNF and what is different between DNF and yum. So we decide to publish an article about that and check what’s different between DNF and Yum.
At first, you need to know DNF is the next generation of yum, and as a rule, it might be better than YUM.
What is DNF
DNF stands for Dandified YUM is a software package manager for RPM-based Linux distributions. It is used to install, update, and remove packages in the Fedora/RHEL/CentOS operating system.
It is the default package manager of Fedora 22, CentOS8, and RHEL8. DNF is the next-generation version of YUM and intended to be the replacement for YUM in RPM-based systems.
DNF is powerful and has robust features than you’ll find in yum. DNF makes it easy to maintain groups of packages and capable of automatically resolving dependency.
what is different between DNF and yum [Quick review]
Yum Package Manager has been replaced by DNF Package Manager since many long-standing issues in Yum remain unresolved.
These problems include poor performance, excessive memory usage, slowdown for dependency resolution.
DNF uses “libsolv” for dependency resolution, developed and maintained by SUSE to improve performance.
It was written mostly in python, and it has its own way of coping with dependency resolution.
Its API is not fully documented, and its extension system only allows Python plugins.
Yum is a front-end tool for rpm that manages dependencies and repositories and then uses RPM to install, download and remove packages.
Why using DNF instead of yum?
There were ultimately three major reasons why Yum was forked into DNF. These reasons were long-standing and serious enough that Yum simply had to go. The reasons were:
An undocumented API—this meant more work for developers. In order for developers to do what they needed, it was often necessary to browse through the Yum codebase just to be able to write a call. This meant development was very slow.
Python 3 – CentOS/RHEL8 was about to make the shift to Python 3 and Yum wouldn’t survive this change, whereas DNF can run using either Python 2 or 3.
Broken dependency solving algorithm—this has been an Achilles heel of the Centos package manager for a long time. DNF uses a state-of-the-art satisfiability (SAT), -based dependency solver. This is the same type of dependency solver used in SUSE’s and openSUSE’s Zypper.
To put it simply, yum was outdated and couldn’t stand up to the rigors of the modern CentOS 8 distribution.
DNF command Benefits
You have to look at this from two different perspectives: The end-user and the developer. If you’re an end-user, the switch from Yum to DNF means one very simple thing: a more reliable experience. Where this reliability comes in is DNFs superior dependency solving.
It will now be a very rare occasion that you go to install a package and the system cannot resolve a dependency. The system is simply smarter.
End-users will also see much less memory usage during package installation. Installations and upgrades will also go much faster. That last bit should be of special importance. Running upgrades with the Yum tool was starting to grow unacceptably slow.
If you’re a developer, the shift to DNF means you’ll be able to work much more efficiently and reliably. All exposed APIs are documented. Another plus for developers is that C will be implemented. The developers have created hawkeye and librepo .
They will also be releasing even more C-based APIs in the future. Considering C is still such a widely-used language. So this should be a welcome change to developers.
We try in this article “what is different between DNF and yum” explain Yum and DNF and what’s different between those, and check some DNF command benefits and why CentOS 8 using this as a default.
I hope the article ” what is different between DNF and yum ” is useful. If you have any questions, you can comment below, or go to the Ask page on Eldernode.