Краткое руководство по диспетчеру пакетов DNF
DNF — это система управления пакетами по умолчанию в большинстве дистрибутивов Linux на основе RPM.
DNF загружает пакеты из репозиториев, устанавливает, удаляет и обновляет пакеты. Он выполняет автоматическое разрешение зависимостей для пакетов, которые вы устанавливаете, обновляете или удаляете, и устанавливает все пакеты, необходимые для выполнения требований зависимостей.
В Fedora это менеджер пакетов по умолчанию, начиная с Fedora 22. В RHEL 8.x теперь это менеджер пакетов по умолчанию.
DNF обеспечивает безопасное управление пакетами, включая проверку подписи GPG для пакетов, подписанных GPG. DNF не будет устанавливать пакеты, не подписанные правильным ключом для этого репозитория.
Для обратной совместимости в RHEL 8.x также есть команда YUM, хотя это ссылка на DNF.
Почему DNF?
DNF или Dandified YUM — это YUM следующего поколения. По сравнению с YUM, DNF имеет лучшее использование памяти, улучшенное управление зависимостями и возможность запуска с использованием как Python 2, так и Python 3.
Управление пакетами с DNF
У вас должны быть права суперпользователя, чтобы использовать команду DNF для установки, обновления или удаления пакета. Ниже приводится набор команд DNF, часто используемых системными администраторами.
Поиск пакета
Чтобы найти пакет, установленный или доступный во всех репозиториях, используйте
Например, чтобы найти пакет Nmap :
Листинг пакетов
Чтобы увидеть список всех установленных и доступных пакетов:
Чтобы просмотреть все установленные пакеты:
$ sudo dnf list installed
Чтобы перечислить все доступные пакеты:
Например, чтобы перечислить все доступные пакеты MySQL:
Отображение информации о пакете
Чтобы отобразить информацию о пакете:
Например, чтобы отобразить информацию о httpd сервере:
Установка пакетов
Установка одного пакета
Чтобы установить один пакет и все его неустановленные зависимости:
Например, чтобы установить Nginx :
Это установит Nginx и все его необходимые зависимости.
Установка нескольких пакетов
Вы также можете установить несколько пакетов, добавив в эту команду имена пакетов. Например, чтобы установить Nginx, PHP и MySQL-сервер, введите:
Установка пакета по его двоичному имени файла
Если вы знаете имя устанавливаемого двоичного файла, но не знаете имя пакета, даже этого достаточно для установки соответствующего пакета.
Например, если вы введете:
DNF ищет и находит пакет, который предоставляет /usr/sbin/
named, и предлагает вам установить его.
Определение того, какому пакету принадлежит файл
Если вы знаете имя файла и хотите узнать, какой пакет предоставляет его (установлен или нет), используйте:
Например, чтобы найти, какой пакет предоставляет имя, двоичный файл для DNS-сервера использует:
Удаление пакета
Чтобы удалить пакет:
Но будьте осторожны, DNF не может удалить пакет, не удаляя также пакеты, которые от него зависят. Чтобы удалить пакет nmap, используйте:
Управление группами пакетов
Группа пакетов — это набор пакетов, которые тесно связаны и служат общей цели. При установке группы пакетов устанавливается набор пакетов, что позволяет сэкономить много времени.
Список всех групп пакетов
Чтобы перечислить все группы пакетов:
Список всех пакетов в группе
Чтобы вывести список всех пакетов в группе:
Например, чтобы просмотреть пакеты в группе «Средства безопасности»:
Установка группы пакетов
При установке группы будут установлены все пакеты в группе. Для установки группы пакетов используйте:
Например, чтобы установить группу «Сетевые серверы»:
Удаление группы пакетов
Чтобы удалить группу пакетов:
Итак, чтобы удалить группу пакетов «Средства безопасности»:
Обновление пакетов
Обновление всех пакетов
Чтобы обновить все пакеты и их зависимости, вы можете использовать:
При этом будут установлены все обновления, которые можно установить. Варианты использования dnf upgrade и dnf update имеют одинаковый эффект, но dnf upgrade рекомендуется к использованию.
Обновление одного пакета
Чтобы обновить один пакет, запустите:
Например, чтобы обновить пакет python:
Заключение
Изучение DNF может быть полезным, поскольку зачастую это самый быстрый способ выполнения задач системного администрирования.