Какая разница между DNF и YUM? Почему YUM заменили в CentOS?

Yum Package Manager был заменен DNF Package Manager так как в Yum было множество нерешенных проблем. Это проблемы быстродействия, чрезмерного потребления ОЗУ, медленного разрешения зависимостей.

Перечислим основные отличия

DNF использует библиотеку “libsolv” для разрешения зависимостей, разработанную и поддерживаемую SUSE для улучшения производительности. Он был написан в основном на python, и у него есть свой собственный способ справиться с разрешением зависимостей. Его API полностью документирован, а его система расширений позволяет использовать не только модули Python.

YUM — это фронтенд для RPM, который управляет зависимостями и репозиториями, а затем использует RPM для установки, загрузки и удаления пакетов. Почему создали новый инструмент DNF вместо того, чтобы исправлять в YUM существующие проблемы?

Алесь Козамблак (Ales Kozamblak) объяснил, что исправление не было технически осуществимо и что команда YUM не была готова принять изменения немедленно. Кроме того, большая проблема заключается в том, что существует 56 тысяч строк кода в YUM, и только 29 тысяч строк в DNF. Так что нет никакого способа избежать этого, кроме форка.

DNF (Dandified YUM) YUM (Yellowdog Updater, Modified)
1 DNF использует библиотеку “libsolv” для разрешения зависимостей, разработанную и поддерживаемую SUSE YUM использует публичный API для разрешения зависимостей
2 API полностью документирован API не полностью документирован
3 Написан на C, C++, Python Написан только на Python
4 DNF уже используется в Fedora, Red Hat Enterprise Linux 8 (RHEL), CentOS 8, OEL 8 и Mageia 6/7. YUM сейчас используется в Red Hat Enterprise Linux 6/7 (RHEL), CentOS 6/7, OEL 6/7.
5 DNF поддерживает различные расширения YUM поддерживает только Python расширения
6 Можно легко делать дополнительные функции через API Очень сложно добавить новые функции, так как API плохо документирован
7 DNF использует меньше ОЗУ YUM использует больше ОЗУ
8 Использует эффективные алгоритмы для разрешения зависимостей Медленное разрешение зависимостей, через API
9 Производительность хороша с точки зрения использования памяти и разрешения зависимостей метаданных репозитория В целом производительность оставляет желать лучшего с точки зрения многих факторов
10 Если пакет содержит нерелевантные зависимости во время процесса обновления DNF, пакет не будет обновлен YUM попытается обновить пакет, не проверяя нужно это или нет
11 Если подключенный репозиторий не отвечает, DNF пропустит его и продолжит транзакцию с доступными репозиториями Если репозиторий недоступен, YUM немедленно остановит процесс
12 dnf update и dnf upgrade — это одно и то же В YUM это разные вещи
13 Зависимости при установке пакета не обновляются YUM предложил вариант такого поведения
14 При удалении пакета DNF автоматически удаляет все пакеты зависимостей, явно не установленные пользователем. YUM этого не делает
15 Расписание обновления кэша репозиториев. По-умолчанию, через десять минут после загрузки системы, после обновления настроенных репозиториев проверяются ежечасно. YUM тоже так делает
16 Пакеты ядра не защищены в DNF. В отличие от YUM, вы можете удалить все пакеты ядра, включая тот, который работает. YUM этого не допустить сделать
17 libsolv: для разрешения пакетов и чтения репозиториев

hawkey: библиотека, предоставляющая упрощенный C и Python API для libsolv.

librepo: библиотека, предоставляющая API C и Python (libcURL like) для загрузки метаданных и пакетов репозитория Linux.

libcomps: альтернатива для yum.comps, она написана на чистом языке С, как библиотека и есть зависимости для python2 и python3

YUM не использует отдельные библиотеки для выполнения этих функции
18 DNF содержит 29.000 строк кода YUM содержит 56.000 строк кода
19 DNF разработал Алесь Козамблак (Ales Kozumplik) YUM разработали Зденек Павлас, Ян Силхан (Zdenek Pavlas, Jan Silhan) и члены команды

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.


Unlix © Все права защищены 2020

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!