В чем разница между dnf и yum в centos8?

Yum и DNF — это, по сути, программы, которые управляют зависимостями и репозиториями программного обеспечения, а затем используют RPM для установки, загрузки и удаления пакетов. DNF является преемником yum, и его главное отличие от yum заключается в том, что он использует некоторые библиотеки из менеджера пакетов ZYpp от OpenSUSE для повышения скорости и улучшения других аспектов.


Давайте сначала разберемся с пакетом RPM.
RPM — это формат пакетов и низкоуровневый менеджер пакетов. Низкоуровневые менеджеры пакетов выполняют базовые функции: они устанавливают пакеты, но не удаляют указанный вами пакет, если все его зависимости ещё не установлены. Они не управляют зависимостями или репозиториями программного обеспечения. RPM, как и другие низкоуровневые менеджеры пакетов, такие как dpkg в Debian и pkgtools в Slackware, не требует наличия репозитория программного обеспечения. Поэтому, если вы попытаетесь установить пакет с его помощью, а у него отсутствует зависимость, он не определит её автоматически; вам придётся скачать и установить её вручную. Вам необходимо самостоятельно найти зависимости RPM, а затем указать URL-адрес для загрузки RPM.
DNF впервые появился
Если вы поклонник Fedora и обновились до версии 22, вы, возможно, заметили серьёзное изменение. Знакомый (и давно знакомый)Менеджер пакетов исчез. Его место занял гораздо более мощный и умный Dandified Yum (DNF).
Почему DNF заменил yum? И как использовать новую систему управления пакетами?
Прежде чем начать, важно понимать, что те, кто никогда не прикасался к командной строке (что, вероятно, редкость в системе Fedora), не заметят ничего необычного. Графический интерфейс остался (почти) прежним — это всё тот же рабочий стол. Однако, если вы предпочитаете устанавливать программы из командной строки, вы заметите, как при выполнении команды быстро появляется новый текст.
Причина, по которой yum был ликвидирован
Есть три основные причины, по которым Yum был обновлён до статуса DNF. Эти причины достаточно старые и серьёзные, чтобы от Yum пришлось отказаться:
Недокументированный API — это увеличивает нагрузку на разработчиков. Чтобы иметь возможность делать то, что им нужно, им часто приходится просматривать кодовую базу Yum для написания вызовов. Это приводит к тому, что разработка идёт очень медленно.
Python 3 – Fedora переходит на Python 3. Yum не переживет это изменение, тогда как DNF может работать как с Python 2, так и с Python 3.
Неработающий алгоритм разрешения зависимостей – это долгое время было ахиллесовой пятой менеджера пакетов Fedora. DNF использует современный алгоритм разрешения зависимостей, основанный на принципе выполнимости (SAT). Этот тип разрешения зависимостей используется в SUSE и Zypper в openSUSE.
Проще говоря, Yum устарел и не может выдержать нагрузки современного дистрибутива Fedora.
Каковы преимущества dnf?
На это нужно смотреть с двух точек зрения: конечного пользователя и разработчика. Для конечного пользователя переход с Yum на DNF означает одну очень простую вещь: более надёжную работу. Источник этой надёжности — превосходное разрешение зависимостей DNF. Теперь система очень редко не может разрешить зависимости при установке пакета. Система стала умнее. Алгоритм зависимостей Yum всё равно был сломан. Решение зависимостей DNF на основе SAT решает эту проблему.
Конечные пользователи также заметят снижение потребления памяти при установке пакетов. Установка и обновление также будут выполняться быстрее. Последний пункт особенно важен. Использование Yum для запуска обновлений становится неприемлемо медленным (особенно по сравнению с такими инструментами, как apt-get и zypper).
Если вы разработчик, переход на DNF позволит вам работать эффективнее и надёжнее. Все публичные API документированы. Ещё одним преимуществом для разработчиков является поддержка языка C. Разработчики уже создали Hawkeye и Librepo (библиотеки C и Python для загрузки пакетов и метаданных из репозиториев программного обеспечения). В будущем они также планируют выпустить больше API на основе C. Учитывая, что C по-прежнему широко используется (в настоящее время занимает второе место в индексе TIOBE), это изменение должно быть приятным для разработчиков.
Как использовать команду dnf?
Вот тут-то и появляются хорошие новости для конечных пользователей. Переход с Yum на DNF только усложнит вашу память. Открывая окно терминала для установки из командной строки, вы, как правило, вводите команду yum install php. Но теперь это не так. Та же самая команда, которая выглядит элегантно, теперь будет выглядеть как dnf install php.
Переход с yum на dnf
На этом пути будут некоторые трудности. Да, DNF заменяет Yum; если вы не опытный пользователь Yum, вы, вероятно, не столкнётесь с проблемами во время миграции. Однако некоторые проблемы всё же предстоит обнаружить. Давайте рассмотрим старую команду yum update --skip-broken. При использовании этой команды обновление запустится, но все пакеты с повреждёнными зависимостями будут пропущены. DNF, с другой стороны, пропускает такие повреждённые пакеты по умолчанию. Для этого нет необходимости включать флаг «skip broken». Если вам нужно, чтобы DNF сообщал о повреждённых пакетах, необходимо запустить DNF update, а затем DNF check-update. Некоторым пользователям не нравится такое поведение, поскольку оно добавляет лишние шаги к некогда простому процессу. Для опытных пользователей DNF может оказаться более трудоёмким, чем Yum. Для обычных пользователей же DNF — это не более чем замена команд yum на команды DNF.
Переход с Yum на DNF может поначалу вызывать некоторые затруднения, особенно когда ничего не подозревающие пользователи открывают командную строку и пытаются использовать yum. Но даже в этом случае вы получаете предупреждение:
Команда yum устарела, вместо нее используйте dnf.
Более подробную информацию смотрите в разделах «man dnf» и «man yum2dnf».
Чтобы перенести метаданные транзакции из yum в DNF, выполните команду «dnf migrate».
В переводе на китайский это, вероятно, означает, что команда yum была отменена, пожалуйста, используйте dnf.
Очевидно, что-то изменилось. Однако, я думаю, разработчики могли бы сделать свои предупреждения более чёткими, а не просто писать «man dnf». Вместо этого можно было бы сказать что-то вроде:
Команда yum больше не используется. Замените «yum» на «dnf» в командах, чтобы использовать новую систему.
Увидев такое приглашение, все, что нужно знать пользователю терминала, — это заменить «yum» на «dnf» и все.
Yum и DNF — это, по сути, программы, которые управляют зависимостями и репозиториями ПО, а затем используют RPM для установки, загрузки и удаления пакетов. DNF — преемник yum, и его главное отличие от yum заключается в том, что он использует некоторые библиотеки из менеджера пакетов ZYpp от openSUSE, пытаясь повысить скорость и улучшить другие аспекты (хотя проведённые мной тесты скорости установки, похоже, показывают, что DNF фактически не имеет существенных преимуществ перед yum).

счет

Ответить

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