Site icon ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Среда, 28 мая, 2025

Знакомство с DNF5: менеджер пакетов нового поколения от Fedora

Знакомство с DNF5: менеджер пакетов нового поколения от Fedora

Добро пожаловать в руководство по введению в менеджер пакетов DNF5. В этой подробной статье мы объясним, что такое DNF5, чем он отличается от более старой версии DNF (dnf против dnf5) и какие значительные улучшения DNF5 привносит в Fedora, RHEL и другие системы на базе RPM.

Мы также рассмотрим эволюцию управления пакетами в Fedora, причины перехода на DNF5, а также изменения в командах и конфигурациях.

В конце вы поймёте всё, что вам нужно знать о DNF5, менеджере пакетов следующего поколения в Fedora.

 

Эволюция управления пакетами в Fedora

Fedora Linux — популярная и современная операционная система Linux, которая быстро развивается с каждым новым выпуском.

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

 

1. YUM (Yellowdog Updater, модифицированная версия)

YUM — это инструмент командной строки, используемый для управления программным обеспечением в системах Linux на базе RPM, таких как Fedora, CentOS и Red Hat. Он был предшественником DNF.

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

YUM был построен на более ранних инструментах, таких как up2date, и был направлен на то, чтобы сделать управление пакетами более простым и надежным.

Хотя в новых системах его теперь заменяет DNF, YUM заложил основу для современного управления пакетами в экосистеме RPM.

 

2. DNF (Dandified YUM)

DNF, представленный в Fedora 18, был разработан для замены устаревшего менеджера пакетов YUM.

DNF, также известный как DNF4, был разработан для устранения ряда недостатков YUM, таких как низкая производительность, неэффективное разрешение зависимостей и сложность кодовой базы.

Он был менеджером пакетов по умолчанию в Fedora на протяжении более десяти лет.

 

3. DNF5

Это следующая обновлённая версия менеджера пакетов DNF, разработанная как полная переделка DNF.

DNF5 был разработан для модернизации управления пакетами в Fedora и устранения недостатков DNF.

DNF5 разрабатывается и поддерживается командой Red Hat по управлению программным обеспечением, а также многими участниками сообщества по всему миру.

 

Что такое менеджер пакетов DNF5?

DNF5 — это менеджер пакетов RPM нового поколения, призванный заменить устаревший инструмент DNF более быстрым, лёгким и интуитивно понятным решением.

В отличие от более старой версии DNF, которая была написана в основном на Python, DNF5 разработан на C++ для повышения производительности и снижения потребления ресурсов.

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

DNF5 доступен начиная с Fedora 38. Начиная с Fedora 41, DNF5 является менеджером пакетов по умолчанию для установки, обновления и управления программным обеспечением в системе.

 

Ключевые особенности DNF5

DNF5 содержит значительные улучшения по сравнению со старой версией DNF. К ним относятся:

 

Почему DNF5? Знакомство с менеджером пакетов нового поколения Fedora

В последних версиях Fedora DNF5 используется в качестве менеджера пакетов по умолчанию, поскольку он предлагает множество других улучшений, выходящих за рамки просто скорости.

 

DNF5 работает быстро

Менеджер пакетов DNF5 делает управление системой более быстрым, простым и последовательным. Он использует меньше системной памяти и предлагает более удобный и унифицированный способ управления программным обеспечением.

Благодаря кодовой базе на C++ и улучшенной внутренней структуре DNF5 работает быстрее. Эти изменения ускоряют выполнение многих задач, таких как чтение данных репозитория, проверка обновлений и поиск пакетов.

Он также быстрее обрабатывает запросы RPM, даже если поиск не учитывает регистр. DNF5 улучшает отслеживание и хранение транзакций, что также способствует повышению скорости.

 

Улучшенный Пользовательский опыт

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

Одной из основных целей DNF5 является унификация пользовательского опыта. Старые инструменты, такие как DNF, YUM, PackageKit и Microdnf, часто вели себя по-разному. Это сбивало с толку.

 

Новая Базовая Библиотека

DNF5 устраняет эту проблему, используя общую библиотеку libdnf5 и общие настройки для всех инструментов. Теперь пользователи могут рассчитывать на одинаковое поведение независимо от того, используют ли они командную строку или графический инструмент.

Разработчики также получают выгоду, поскольку им приходится поддерживать меньше кода и исправлять меньше ошибок. Новая поддержка плагинов для C++ и Python также означает меньшее количество повторяющихся функций.

 

Еще Больше новых функций

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

Вы можете напрямую устанавливать локальные файлы RPM и просматривать подробные отчеты во время установки, включая информацию о сценариях установки.

 

Демон DNF

Он также представляет DNF Daemon — фоновый сервис, который может выполнять задачи по установке пакетов, не замедляя вашу работу.

 

Модульность

Ещё одно ключевое изменение — то, как DNF5 обрабатывает модульность. В старом DNF она была, но только в некоторых инструментах. Это вызывало проблемы.

DNF5 решает эту проблему, встраивая модульность в свою основную структуру. Теперь все инструменты поддерживают её одинаково. Это упрощает жизнь пользователям, разработчикам и системным администраторам.

Короче говоря, DNF5 предоставляет Fedora более быстрый, простой и надёжный способ управления пакетами. Это уменьшает путаницу, сокращает количество ошибок и повышает удобство для всех.

 

DNF5 против DNF: ключевые различия и изменения в командах

Для пользователей, привыкших к DNF, важно понимать конкретные различия, которые появились в DNF5, чтобы переход был плавным.

В то время как многие базовые команды работают схожим образом, DNF5 создан с учётом дизайнерской идеи, которая предполагает чёткие и стабильные способы работы. Это приводит к нескольким важным изменениям в написании команд, выборе и внутренней работе.

 

Синтаксис команды и изменения параметров

DNF5 меняет способ использования многих команд.

В DNF4 некоторые команды работали без подкоманд. В DNF5 теперь требуются подкоманды.

Например, там, где раньше вы могли запустить dnf history, теперь для просмотра прошлых транзакций нужно запустить dnf5 history list.

Это изменение помогает избежать путаницы и облегчает понимание ошибок, когда вы неправильно вводите команду.

Некоторые параметры также были удалены или переименованы. Параметры -4 и -6, которые позволяли выбирать между IPv4 и IPv6, больше не доступны.

Вместо этого теперь вы можете задать версию IP-адреса с помощью параметра ip_resolve в файле конфигурации. Параметр --obsoletes также был удалён.

Как и в случае с настройками IP, его поведение теперь регулируется в конфигурации. Опция --sec-severity была переименована в --advisory-severities, что делает ее назначение более понятным.

Опция -v или --verbose , которая раньше работала почти везде, пока не поддерживается в полной мере в DNF5. Некоторые команды могут добавить её позже.

DNF5 также добавляет новые функции, предоставляющие вам больше возможностей для управления. Например:

 

Некоторые команды также изменили своё поведение.

Команда history теперь по умолчанию ожидает ввода идентификатора транзакции. Если вы хотите выполнить фильтрацию по названию пакета, используйте --contains-pkgs.

Команды mark получили новые названия: install теперь называется user, а remove теперь называется dependency.

Команда upgrade имеет новую опцию --minimal, но больше не поддерживает --skip-broken, которая в любом случае никогда не работала в DNF4.

Команды для работы с репозиториями также изменились. Команды repolist и repoinfo теперь являются частью подкоманды repo. Поэтому вам следует использовать dnf5 repo list или dnf5 repo info.

Старые названия команд пока что работают как ярлыки.

Кроме того, команда updateinfo теперь называется advisory, и для её использования необходимо применять подкоманду.

Все эти изменения направлены на достижение чёткой цели: сделать DNF5 более последовательным и предсказуемым.

Хотя более строгий синтаксис требует от пользователей привыкания, он помогает избежать ошибок и делает скрипты более надёжными.

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

 

Различия в конфигурации и плагинах

DNF5 меняет способ хранения и обработки данных кэша и транзакций. Пользовательский кэш теперь находится в ~/.cache/libdnf5, а общесистемный кэш — в /var/cache/libdnf5. Такое более чёткое разделение помогает упорядочивать метаданные и упрощает управление ими.

Несколько параметров конфигурации были удалены или заменены. Старый параметр strict больше не используется. Вместо него в DNF5 используются два новых параметра:

 

Это изменение позволяет пользователям лучше контролировать обработку ошибок во время установки и обновления.

 

Опция metadata_timer_sync также больше не используется. Теперь обновление метаданных осуществляется с помощью таймера systemd под названием dnf5-makecache.timer. Вы можете настроить этот таймер, если хотите изменить частоту обновления метаданных.

Еще одно изменение — настройка deltarpm по умолчанию. В DNF5 теперь по умолчанию установлено значение false по умолчанию. Это связано с тем, что в DNF5 пока недоступна поддержка дельта-частоты вращения.

Одно из самых важных изменений — это то, как DNF5 обрабатывает транзакции. Он хранит собственную базу данных о том, какие пакеты установлены или изменены.

Эта база данных отделена от базы данных DNF4. Поэтому, если вы установите пакет с помощью dnf, DNF5 не увидит его в истории, и наоборот. Это может привести к путанице, если вы будете переключаться между двумя инструментами.

Поэтому лучше использовать только один инструмент, в идеале — DNF5. Смешение инструментов может привести к потере информации, ошибкам или неожиданным результатам.

Переход Fedora на DNF5 должен быть плавным, и пользователям следует подготовиться к полному переходу, чтобы избежать проблем.

 

DNF4 и DNF5: сравнение команд и опций

В следующей таблице представлено прямое сравнение распространенных команд/параметров DNF4 и их эквивалентов в DNF5 или изменений в поведении:

Команда / Параметр DNF4 Эквивалент DNF5 / Изменение Примечания / Поведенческие Различия
dnf history dnf5 history list Подкоманды теперь являются обязательными. history принимается только идентификаторы транзакций; используйте --contains-pkgs для фильтрации пакетов.
dnf updateinfo dnf5 advisory summary updateinfo Теперь advisory. Подкоманды, такие как summarylistinfo являются обязательными.
dnf repolist dnf5 repo list repolist и repoinfo теперь являются подкомандами reporepolist остается псевдонимом для совместимости.
dnf groupinstall dnf5 group install Многие псевдонимы group (например, groupinfogrouplist) устарели. Используйте явные подкоманды.
dnf -v или --verbose Не реализовано (может быть добавлено для конкретных команд) Функция заменена на repo info для отображения сведений о репозитории.
dnf --skip-broken Удален В DNF4 эта опция не работала. Теперь решения принимаются на основе --best или --no-best.
dnf --all (для list/info) Удален (теперь поведение по умолчанию) --all—  значение по умолчанию для команд list и info.
dnf --updates (для info) --upgrades Вариант переименован для наглядности.
dnf --available (для list) Измененное поведение DNF5 перечисляет все доступные версии, а не только новые.
dnf -4/-6 Удален Доступен только ip_resolve вариант конфигурации.
dnf --strict (конфигурация) Устарел, разделен на skip_brokenskip_unavailable Теперь функциональность обеспечивается новыми, более точными настройками.
dnf --downloaddir Удален Для команды --destdir используется только download
dnf --installroot Новое поведение Определяет, откуда загружаются конфигурация и переменные.
~/.cache/dnf ~/.cache/libdnf5 Изменен каталог пользовательского кэша по умолчанию.
/var/cache/dnf /var/cache/libdnf5 Изменен каталог корневого кэша по умолчанию.
dnf installroot dnf5 --installroot --installroot теперь это глобальный вариант.
dnf --offline Новая опция Сохраняет транзакцию для выполнения в автономном режиме.
dnf --skip-unavailable Новая опция Позволяет пропускать пакеты, недоступные в репозиториях.
dnf --allow-downgrade Новая опция Включает/отключает понижение уровня зависимости при разрешении транзакции.

 

Заключение

DNF5 — это значительный шаг вперед в управлении пакетами Fedora. Он стал быстрее, легче и надежнее благодаря полной переработке на C++.

Но дело не только в скорости. DNF5 также обеспечивает более удобный и последовательный способ управления программным обеспечением в системе.

Переход с DNF на DNF5 требует освоения нескольких новых привычек. Команды стали более понятными, а некоторые привычные опции исчезли или были переименованы. Тем не менее переход не составит труда. Эти изменения делают DNF5 более предсказуемым, особенно для скриптов и автоматизированных инструментов.

DNF5 от Fedora предлагает более удобные варианты работы с пакетами, решения проблем и обеспечения безопасности систем.

Если вы начнёте использовать DNF5 сейчас, то избежите неожиданностей в будущем. В нашем следующем руководстве мы рассмотрим некоторые важные команды DNF5 на практических примерах.

Ресурс:

Exit mobile version