DNF vs YUM, Why ? YUM replaced by DNF
Yum replaced by DNF due to several long-term problems in Yum which was not solved. Asked why ? he did not patches the Yum issues. Aleš Kozumplík explains that patching was technically hard and YUM team wont accept the changes immediately and other major critical, YUM is 56K lines but DNF is 29K lies. So, there is no option for further development, except to fork.
|1||DNF’s uses libsolv for dependency resolution which was created and maintained by SUSE.||YUM uses public API for dependency resolution|
|2||API is documented properly||API is not documented|
|3||DNF supports more extension||Yum support only Python for extension|
|4||Easy to build new features because API documented||Building new features are very difficult|
|5||DNF uses lower memory reduction and less automatic synchronization of metadata with repositories||YUM uses high memory reduction and automatic synchronization of metadata with repositories|
|6||DNF Update : If a package has unmet dependencies during a dnf update action, that package will not be updated.||YUM will do|
|7||If enabled repository does not respond, dnf will skip it and continue the transaction with the available repos.||YUM will stop immediately, if a repository was not available.|
|8||dnf update and dnf upgrade are equivalent.||YUM is different|
|9||Dependencies are not upgraded on package installation||Yum offered an option for this behavior|
|10||Clean on remove : When removing a package, dnf will automatically remove any dependent packages that were not explicitly installed by the user.||Yum Wont do|
|11||Repo cache refresh schedule : By default, dnf will check for updates in configured repositories hourly, starting ten minutes after the system boots. The action is controlled by a systemd timer unit, /usr/lib/systemd/system/dnf-makecache.timer.||Yum also do|
|12||kernel packages are not protected by dnf. Unlike with yum, you can remove all kernel packages, including the running package|
|13||libsolv : for solving packages and reading repositories.
hawkey : hawkey, library providing simplified C and Python API to libsolv.
librepo : library providing C and Python (libcURL like) API for downloading linux repository metadata and packages.
libcomps : Libcomps is alternative for yum.comps library. It’s written in pure C as library and there’s bindings for python2 and python3
|Yum don’t use, separate library to perform this action|
|14||DNF is 29k lines of code||Yum is 56k lines of code|
|15||DNF is developed by Aleš Kozumplík||YUM is developed by Zdeněk Pavlas, Jan Šilhan and team members|