Разница между YUM и DNF

Время на чтение:
3 минуты
26

Для работы большинства пакетов RPM необходимо, чтобы в системе уже были установлены некоторые другие программы, такие как библиотеки, исполняемые файлы и т.д. Если вы попытаетесь установить пакет RPM без зависимого пакета, установка пакета завершится с сообщением об ошибке, показывающим, какие компоненты необходимы. Тогда вам придется копаться в системе, чтобы найти пакет, содержащий необходимые компоненты. Эту ситуацию принято называть ‘ад зависимостей’. По мере роста популярности приложений на базе RPM, включая Red Hat Linux, стало как никогда важно сделать установку пакетов менее сложной. Ответом на этот вопрос стал YUM. Но через некоторое время у него возникли проблемы, поэтому он был заменен более быстрым и качественным менеджером пакетов DNF.

А какой вариант выбираете вы?
Разбираемся в отличиях
0 0

Что такое YUM?

Yellowdog Updater, Modified (YUM) — это бесплатная программа с открытым исходным кодом, изначально разработанная для Yellowdog Linux, ныне несуществующего дистрибутива Linux.YUM — это инструмент управления пакетами для установки, обновления и удаления программных пакетов в Red Hat Enterprise Linux. В первую очередь он был разработан для эффективного управления зависимостями с пакетами RPM. Идея заключалась в том, чтобы рассматривать пакеты RPM не как отдельные компоненты, а как части более крупных репозиториев программного обеспечения. Одним из основных преимуществ YUM перед предыдущими пакетными менеджерами является то, что он не только устанавливает пакеты, которые вы хотите установить, но и автоматически устанавливает все пакеты, которые являются необходимыми для пакетов, которые вы хотите установить. YUM был написан Сетом Видалом и Майклом Стеннером на физическом факультете университета Дьюка.

Что такое DNF?

YUM был успешным, но по мере старения он столкнулся с некоторыми проблемами. Он становился медленным и использовал много памяти, а большая часть его кода нуждалась в переписывании. Не было смысла развивать YUM дальше, поэтому была представлена следующая, значительно улучшенная версия пакета YUM, с более продвинутыми и надежными функциями — Dandified YUM, более известная как DNF. Для большинства пользователей изменения поверхностны и заключаются в замене YUM на DNF в командах. При прямом сравнении, улучшения в производительности, использовании памяти и разрешении зависимостей пакетов весьма значительны. DNF заменил YUM в качестве менеджера пакетов по умолчанию в Fedora 22. Одним из основных отличий является то, что DNF придерживается строгого API, что поощряет разработку расширений и плагинов к DNF.

Различия между YUM и DNF

Разрешение зависимостей

Хотя основная цель YUM или DNF — управление фактическими пакетами RPM в вашей системе, DNF лучше справляется с разрешением зависимостей, поскольку использует более современный и продвинутый ‘libsolagainst для улучшенного разрешения зависимостей. Libsolv — это проверенная кодовая база и одна из самых сложных реализаций разрешения зависимостей. YUM, с другой стороны, использует публичный API для разрешения зависимостей.

API

Хотя DNF поддерживает базовую совместимость командной строки с YUM, одним из основных отличий является то, что DNF придерживается строгого API, и этот API поощряет разработку расширений и плагинов для DNF. API также очень хорошо документирован, что облегчает внедрение новых функций. API YUM не так хорошо документирован, как у DNF, поэтому создавать новые функции сложно.

Производительность

Менеджер пакетов DNG пришел на смену YUM, потому что многие давние проблемы с YUM остались нерешенными.YUM был медленным и использовал много памяти, и большая часть его кода нуждалась в переписывании. Для сравнения, DNF использует очень мало памяти при синхронизации метаданных хранилищ, по сравнению с YUM, который известен своим чрезмерным использованием памяти. Кроме того, YUM обычно замедлялся при решении проблем с зависимостями. DNF имеет больше и лучше возможностей, чем YUM.

Обзор

Хотя конечный пользователь может не заметить много различий между двумя пакетными менеджерами, под капотом можно найти много функциональных различий. Основные различия между YUM и DNF заключаются в производительности, использовании памяти, а также в том, как был переписан код, чтобы облегчить разработчикам поддержку предсказуемого документированного API. Еще одно отличие заключается в том, что DNF совместим с Python3, а YUM — нет. Кроме того, алгоритм зависимости пакетов был полностью переписан. Кроме того, основное назначение YUM или DNF — управление фактическими пакетами RPM в вашей системе.

 

Часто задаваемые вопросы

Что означает DNF для YUM?

DNF расшифровывается как Dandified YUM и по сути является более продвинутой и улучшенной версией оригинального пакета YUM. DNF заменил YUM в качестве менеджера пакетов по умолчанию в Fedora 22.

В чем разница между RPM и DNF?

Обе команды используются для установки пакетов.rpm в Fedora. Однако DNF автоматически определяет и устанавливает зависимости, а RPM - нет.

Что такое DNF в Linux?

DNF изначально был разновидностью пакетного менеджера YUM, который по сути является заменой YUM, а не просто новым релизом.

Использует ли Rhel 8 DNF?

Да. Это новый менеджер пакетов, используемый для установки пакетов в RHEL 8.

Видео-совет:

https://youtu.be/g-1wUkStitk

А также про другие отличия: