Команда dnf предназначена для работы с одноименной утилитой, которая используется для управлении пакетами программного обеспечения в дистрибутивах RHEL, CentOS, а также Fedora Workstation (в первых двух дистрибутивах она пока не используется по умолчанию). Данная утилита пришла на смену широко известной утилите yum из-за проблем с производительностью и потреблением памяти последней. На сегодняшний день утилита dnf обладает всеми возможностями утилиты yum и является ее полноценной заменой, менее требовательной к ресурсам системы.
Вы можете использовать dnf для установки и удаления пакетов программного обеспечения из вашей системы (группами или по одному), а также обновления системных списков пакетов программного обеспечения из подключенных на данный момент репозиториев.
Базовый синтаксис команды выглядит следующим образом:
# dnf [параметры] [команда] имена-пакетов-или-групп
Утилита поддерживает большое количество команд и параметров. Чаще всего используются такие параметры, как параметр --skip-broken, позволяющий пропускать пакеты с проблемами зависимостей, параметр --allowerasing, позволяющий удалять пакеты для разрешения зависимостей, параметр --cacheonly (или -C), позволяющий использовать кэшированные метаданные без их обновления, параметры --assumeyes (или -y) и --assumeno, позволяющие автоматически отвечать утвердительно или отрицательно на все вопросы утилиты, параметры --enablerepo и --disablerepo, позволяющие активировать и деактивировать указанный репозиторий, а также параметр --exclude (или -x), позволяющий исключить из рассмотрения пакет с указанным именем. Основными командами являются:
Команда | Назначение |
install |
Установка пакета с заданным именем |
reinstall |
Переустановка пакета с заданным именем |
|
Обновление пакета с заданным именем |
|
Удаление пакета с заданным именем |
autoremove |
Удаление осиротевших пакетов |
info |
Получение информации о пакете с заданным именем |
provides |
Получение имени пакета, в котором имеется файл с заданным именем |
search |
Поиск пакетов с заданным словом в имени |
list |
Вывод имен всех доступных и установленных пакетов |
list installed |
Вывод списка всех установленных пакетов |
list available |
Вывод списка всех доступных пакетов |
repolist |
Вывод списка подключенных репозиториев |
repolist all |
Вывод списка всех репозиториев |
clean all |
Удаление всех метаданных |
history |
Вывод истории использования dnf |
groupunstall |
Установка всех пакетов из группы с заданным именем |
groupupdate |
Обновление всех пакетов из группы с заданным именем |
groupremove |
Удаление всех пакетов из группы с заданным именем |
grouplist |
Вывод имен всех существующих групп пакетов |
В дистрибутиве Fedora Workstation dnf используется также для автоматической загрузки обновлений системы. Если вам не нужна эта функция (например, вы привыкли устанавливать обновления вручную или используете сетевое соединение с ограничением по трафику), вы можете деактивировать ее следующим образом.
В первую очередь следует деактивировать соответствующие службу и таймер systemd:
# systemctl disable dnf-makecache.service
# systemctl disable dnf-makecache.timer
Далее нужно отключить механизм автоматической загрузки обновлений на уровне службы packagekitd:
$ gsettings set org.gnome.software download-updates false
После этого система не будет самостоятельно проверять наличие, загружать и предлагать устанавливать обновления. Не стоит отключать данный механизм без весомых оснований!
Для установки пакета программного обеспечения достаточно просто использовать команду install:
# dnf install midori Последняя проверка окончания срока действия метаданных: 1:17:29 назад, Пн 31 июл 2017 17:36:45. Зависимости разрешены. ================================================================================ Пакет Архитектура Версия Репозиторий Размер ================================================================================ Установка: midori x86_64 0.5.12-0.2.fc26 fedora 1.3 M Результат транзакции ================================================================================ Установка 1 Пакет Объем загрузки: 1.3 M Объем изменений: 6.2 M Продолжить? [д/Н]: y Загрузка пакетов: midori-0.5.12-0.2.fc26.x86_64.rpm 621 kB/s | 1.3 MB 00:02 -------------------------------------------------------------------------------- Общий размер 277 kB/s | 1.3 MB 00:04 Проверка транзакции Проверка транзакции успешно завершена. Идет проверка транзакции Тест транзакции проведен успешно Выполнение транзакции Подготовка : 1/1 Установка : midori-0.5.12-0.2.fc26.x86_64 1/1 Запуск скриплета: midori-0.5.12-0.2.fc26.x86_64 1/1 Проверка : midori-0.5.12-0.2.fc26.x86_64 1/1 Установлено: midori.x86_64 0.5.12-0.2.fc26 Выполнено!
Удаление пакета программного обеспечения осуществляется с помощью команды remove:
# dnf remove midori Зависимости разрешены. ================================================================================ Пакет Архитектура Версия Репозиторий Размер ================================================================================ Удаление: midori x86_64 0.5.12-0.2.fc26 @fedora 6.2 M Результат транзакции ================================================================================ Удаление 1 Пакет Освобожденное место: 6.2 M Продолжить? [д/Н]: y Проверка транзакции Проверка транзакции успешно завершена. Идет проверка транзакции Тест транзакции проведен успешно Выполнение транзакции Подготовка : 1/1 Удаление : midori-0.5.12-0.2.fc26.x86_64 1/1 Запуск скриплета: midori-0.5.12-0.2.fc26.x86_64 1/1 Проверка : midori-0.5.12-0.2.fc26.x86_64 1/1 Удален: midori.x86_64 0.5.12-0.2.fc26 Выполнено!
Поиск пакета программного обеспечения осуществляется с помощью команды search. Также вместе с ней может использоваться параметр -C для отказа от обновления метаданных:
# dnf -C search midori Последняя проверка окончания срока действия метаданных: 1:09:54 назад, Пн 31 июл 2017 17:36:45. ========================= Имя Exactly Matched: midori ========================== midori.x86_64 : A lightweight GTK+ web browser midori.i686 : A lightweight GTK+ web browser
Для установки всех обновлений системы достаточно использовать команду update:
# dnf update Последняя проверка окончания срока действия метаданных: 1:24:50 назад, Пн 31 июл 2017 17:36:45. Зависимости разрешены. Отсутствуют действия для выполнения Выполнено!