Команда dnf

Команда dnf предназначена для работы с одноименной утилитой, которая используется для управлении пакетами программного обеспечения в дистрибутивах RHEL, CentOS, а также Fedora Workstation (в первых двух дистрибутивах она пока не используется по умолчанию). Данная утилита пришла на смену широко известной утилите yum из-за проблем с производительностью и потреблением памяти последней. На сегодняшний день утилита dnf обладает всеми возможностями утилиты yum и является ее полноценной заменой, менее требовательной к ресурсам системы.

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

Базовый синтаксис команды выглядит следующим образом:

# dnf [параметры] [команда] имена-пакетов-или-групп

Утилита поддерживает большое количество команд и параметров. Чаще всего используются такие параметры, как параметр --skip-broken, позволяющий пропускать пакеты с проблемами зависимостей, параметр --allowerasing, позволяющий удалять пакеты для разрешения зависимостей, параметр --cacheonly (или -C), позволяющий использовать кэшированные метаданные без их обновления, параметры --assumeyes (или -y) и --assumeno, позволяющие автоматически отвечать утвердительно или отрицательно на все вопросы утилиты, параметры --enablerepo и --disablerepo, позволяющие активировать и деактивировать указанный репозиторий, а также параметр --exclude (или -x), позволяющий исключить из рассмотрения пакет с указанным именем. Основными командами являются:

Команда Назначение
install Установка пакета с заданным именем
reinstall Переустановка пакета с заданным именем

update

upgrade

Обновление пакета с заданным именем

remove

erase

Удаление пакета с заданным именем
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.
Зависимости разрешены.
Отсутствуют действия для выполнения
Выполнено!