For most RPM packages to work, some other software like library, executable, and so on must be already installed on the system because if you try to install a package with RPM without a dependency package, the package installation fails with an error message showing which components are needed. Then, you have to dig around to find the package that contains the components you needed. This situation is commonly referred to as “dependency hell.” As RPM based applications including Red Hat Linux grew in popularity, it became more important than ever to make package installation less challenging. The answer was YUM. But it ran into some problems after a while, so it was replaced by a faster and better DNF package manager.
What is YUM?
The Yellowdog Updater, Modified (YUM) is a free, open source program originally developed for Yellowdog Linux, a now defunct Linux distribution. YUM is basically a package management tool for the installation, update, and removal of software packages in Red Hat Enterprise Linux. It was primarily designed to effectively manage dependencies with RPM packages. The idea was not to think RPM packages as individual components, but as parts of larger software repositories. One of the major selling points of YUM over earlier package managers is that it not only installs packages you want it installed, but also automatically installs any packages that are prerequisites to the packages you want to install. YUM was written by Seth Vidal and Michael Stenner at Duke University Department of Physics.
What is DNF?
YUM was successful but it faced some problems as it aged. It was getting slow and used a great deal of memory, and much of its code needed to be rewritten. There was no point in doing YUM any further, so the next and much improved version of the YUM package was introduced, with more advanced and robust features – the Dandified YUM, better known as the DNF. For most users, the change is superficial and involves replacing YUM with DNF in commands. In straight comparison, the improvements in performance, memory usage, and package dependency resolutions are quite significant. The DNF facility replaced YUM as the default package manager in Fedora 22. One of the main differences is that DNF adheres to a strict API, which encourages the development of extensions and plug-ins to DNF.
Difference between YUM and DNF
– While the main purpose of YUM or DNF is to manage actual RPM packages on your system, DNF sports better dependency resolution because it uses the more modern and advanced ‘libsolv’ for improved dependency solving. Libsolv is a proven code base and one of the most sophisticated dependency solving implementations. YUM, on the other hand, uses the public API for dependency resolution.
– While DNF maintains a basic command line compatibility with YUM, one of the major distinction points is that DNF adheres to a strict API and that API encourages the development of extensions and plug-ins to DNF. The API is also very well documented making it easy to implement new features. YUM’s API is not as well documented as DNF’s, so it is tough to create new features.
– DNG package manager has replaced the YUM because many long-standing issues with YUM remain unsolved. YUM was slow and used a great deal of memory, and much of its code needed to be rewritten. In comparison, DNF uses very less memory when synchronizing the metadata of the repositories, compared to YUM which is known for its excessive memory usage. Also, YUM used to slow down when solving dependencies. DNF has more and better features than YUM.
YUM vs. DNF: Comparison Chart
While the end user might not able to notice many differences between the two package managers, under the hood, there are actually a lot of functional differences to be found. The major differences between YUM and DNF are mainly in performance, memory usage, and how the code has been rewritten to make it easy for developers to maintain a predictable documented API. One other difference is that DNF is compatible with Python3 where YUM is not. Also, the package dependency algorithm has been entirely rewritten. Besides, the main purpose of YUM or DNF is to manage actual RPM packages on your system.
What does DNF stand for YUM?
DNF stands for Dandified YUM and is basically the more advanced and better version of the original YUM package. DNF replaced YUM as the default package manager in Fedora 22.
What is the difference between RPM and DNF?
Both the commands are used to install .rpm packages in Fedora. However, DNF automatically identifies and installs dependencies whereas RPM does not.
What is DNF on Linux?
DNF was originally a form of the YUM package manager, which is basically a replacement of YUM rather than just a new release
Does Rhel 8 use DNF?
Yes. It is the new package manager used to install packages on RHEL 8.
: If you like this article or our site. Please spread the word. Share it with your friends/family.
Khillar, S. (2022, September 11). Difference Between YUM and DNF. Difference Between Similar Terms and Objects. http://www.differencebetween.net/technology/difference-between-yum-and-dnf/.
Khillar, Sagar. “Difference Between YUM and DNF.” Difference Between Similar Terms and Objects, 11 September, 2022, http://www.differencebetween.net/technology/difference-between-yum-and-dnf/.