Доступен пакетный менеджер DNF 2.0, пришедший на смену Yum
26 декабря 2016 года
Опубликован (Архивная копия от 25 марта 2017 на Wayback Machine) второй значительный релиз пакетного менеджера DNF (2.0), который вобрал в себя улучшения, подготовленные после задействования DNF по умолчанию в Fedora Linux и сосредоточенный на улучшении совместимости с YUM.
В DNF 2.0 реализованы более понятные уведомления о проблемах с зависимостями, организован показ списка слабых зависимостей в суммарных параметрах транзакции, добавлена улучшенная система подсказки для доступных команд. В основной состав DNF перемещён плагин Repoquery. Добавлены новые unit-файлы для systemd: dnf-automatic-notifyonly, dnf-automatic-download и dnf-automatic-install.
Реализованы команды и опции:
- "dnf remove --duplicates" и "dnf remove --oldinstallonly" для удаления старых версий дублирующих друг друга пакетов и старых пакетов категории installonly.
- Новая команда "dnf repoquery" (ранее данная функциональность развивалась как отдельный плагин) для поиска пакетов во внешних репозиториях (аналог "rpm -q" для удалённого репозитория);
- Добавлена опция "--repo репозиторий" для ограничения операций только репозиторием, выбранным по идентификатору или маске.
- Новая команда "dnf check" для выполнения проверки целостности локальной БД packagedb и вывода информации о возможных проблемах. Поддерживаются опции для ограничения проверки отдельными областями, например "--dependencies", "--duplicates", "--obsoleted и "--provides".
- Новая команда "dnf upgrade-minimal", позволяющая обновить каждый пакет до самой свежей версии с улучшениями или исправлениями ошибок и уязвимостей.
- Новые опции для выбора уровня безопасности: bugfix, enhancement, newpackage, security, advisory, bzs, cves, sec-severity и secseverity.
К сожалению, некоторые изменения в выпуске, связанные с поддержкой особенностей работы YUM, привели к нарушению полной совместимости с веткой DNF-1. В том числе возвращено свойственное для YUM поведение для настроек файла конфигурации, например опции "include" и "exclude" заменены на "includepkgs" и "excludepkgs", для установки опциональных зависимостей вместо команды "with-optional" теперь предлагается параметр "--with-optional", вместо "dnf search all" - "dnf search --all", вместо "dnf makecache timer" - "dnf makecache --timer", вместо "dnf list command" - "dnf list --command", вместо "dnf repolist [enabled|disabled|all]" - "dnf repolist [--enabled|--disabled|--all]" и т.д. Также изменены аргументы в некоторых вызовах Python API.
Напомним, что DNF является ответвлением от Yum 3.4, созданным для развития некоторых новых идей, таких как использование библиотеки hawkey в качестве бэкенда для разрешения зависимостей. В качестве основных проблем Yum, которые побудили к созданию DNF, называют некачественную документацию на API, проблемный алгоритм разрешения зависимостей и невозможность рефакторинга внутренних функций. По сравнению с Yum, DNF обладает заметно более высокой скоростью работы, низким потреблением памяти и более качественным управлением зависимостями. Кроме того, DNF может выполняться как при помощи Python 2, так и Python 3, что позволило реализовать план по поставке Python 3 в Fedora по умолчанию.
Для разрешения зависимостей в DNF задействован SAT solver, реализованный в библиотеке libsolv (hawkey выступает в роли надстройки над libsolv), созданной в рамках проекта openSUSE. Обработки метаданных и загрузка пакетов выполняется через librepo. Для расширения функциональности DNF предоставляет новый, не совместимый с Yum, API для плагинов и интеграции с другими приложениями, такими как инсталлятор Anaconda. На уровне опций командной строки и файлов конфигурации, DNF почти полностью совместим с YUM.
Источники
править- Главная ссылка к новости (http://dnf.baseurl.org/2016/12...) (Архивная копия от 25 марта 2017 на Wayback Machine)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.