Гид по технологиям

Как устанавливать и управлять пакетами в DNF на RPM-дистрибутивах

7 min read Linux Обновлено 27 Dec 2025
Как управлять пакетами в DNF на Fedora и RHEL
Как управлять пакетами в DNF на Fedora и RHEL

Пакет с логотипом Fedora

DNF — современный пакетный менеджер для RPM-дистрибутивов (Fedora, RHEL). Он заменил YUM, разрешает зависимости, хранит историю транзакций и позволяет устанавливать, обновлять, удалять и восстанавливать пакеты с удобными командами. В статье — быстрые команды, сценарии для администраторов и пользователей, чек-листы, матрица сравнения и рекомендации по безопасности.

Одно из самых удобных преимуществ Linux — лёгкость установки или автоматизации установки программ из защищённых удалённых репозиториев. В этой статье подробно описано, как устанавливать и управлять пакетами в RPM-системах (Fedora, RHEL) с помощью DNF — современного пакетного менеджера.

Что такое DNF?

DNF (Dandified YUM) — преемник YUM и стандартный менеджер пакетов в Fedora и RHEL. Его основная задача — упростить установку, поиск, обновление и удаление пакетов, автоматически решая зависимости. DNF совместим с оболочными сценариями, написанными для YUM: команда yum на новых системах обычно является символьной ссылкой на dnf.

Краткое определение: DNF — это менеджер пакетов для RPM, который автоматически разрешает зависимости и ведёт историю транзакций.

Пример проверки символьной ссылки:

ls -l /usr/bin/yum

Вывод покажет, что yum ссылается на dnf.

Основные команды DNF

Ниже — быстрый список команд для повседневной работы. Все команды, которые изменяют систему, выполняйте с правами root или через sudo.

  • Поиск пакетов: dnf search <ключевое_слово>
  • Подробная информация: dnf info <пакет>
  • Список доступных: dnf list available
  • Список установленных: dnf list installed
  • Установка: sudo dnf install <пакет>
  • Удаление: sudo dnf remove <пакет>
  • Переустановка: sudo dnf reinstall <пакет>
  • Проверка обновлений: sudo dnf check-update
  • Обновление всех пакетов: sudo dnf update
  • Удаление неиспользуемых зависимостей: sudo dnf autoremove
  • Очистка кеша пакетов: sudo dnf clean packages
  • Очистка метаданных: sudo dnf clean metadata
  • Просмотр истории транзакций: dnf history
  • Откат транзакции: sudo dnf history undo
  • Просмотр зависимостей пакета: dnf deplist <пакет>

Каждая команда имеет дополнительные опции; запускайте man dnf или dnf –help для подробностей.

Поиск пакетов и получение информации

Поиск пакетов полезен на раннем этапе — когда не знаете точного имени пакета. Пример: поиск браузеров.

dnf search browser

Вывод команды dnf search для веб-браузеров

Вывод содержит пакеты, в имени или описании которых встречается «browser». Для подробной информации о конкретном пакете используйте:

dnf info firefox

Это покажет архитектуру, размер пакета, версию, лицензию и другие метаданные.

Для просмотра всех доступных пакетов удобно использовать постраничный вывод:

dnf list available | less

Навигация в less: F — вперёд, B — назад, / — поиск, Q — выход.

Список установленных пакетов:

dnf list installed

Установка пакетов

Установка простая, но требует повышенных привилегий. Пример установки Firefox:

sudo dnf install firefox

DNF автоматически загрузит и установит необходимые зависимости. Чтобы увидеть, какие зависимости будут установлены вместе с пакетом:

dnf deplist firefox

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

Удаление и откат установок

Простейший способ удалить пакет:

sudo dnf remove firefox

DNF ведёт историю транзакций. Просмотр истории показывает список операций — установки, удаления и обновления:

dnf history

Вывод истории команд dnf

Вы можете откатить транзакцию по её идентификатору, но делайте это осторожно:

sudo dnf history undo 3

Перед откатом полезно просмотреть детали транзакции:

sudo dnf history info 3

Замените 3 на нужный ID.

Очистка и удаление неиспользуемых зависимостей

Со временем на диске накапливаются пакеты и зависимости, которые уже не нужны. Удалите их командой:

sudo dnf autoremove

Для удаления загруженных пакетов и метаданных используйте:

sudo dnf clean packages
sudo dnf clean metadata

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

Переустановка пакета

Если какие-то файлы пакета были повреждены или удалены, переустановите пакет так:

sudo dnf reinstall firefox

Это заменит файлы пакета на версии из репозитория, не затрагивая пользовательские конфигурации в /etc, если они отмечены как конфигурационные файлы пакета.

Обновление пакетов

Регулярные обновления важны для безопасности и стабильности. Сначала проверьте доступные обновления:

sudo dnf check-update

Затем примените их ко всем пакетам:

sudo dnf update

Вывод команды dnf update

Можно обновлять отдельный пакет:

sudo dnf update firefox

Полезная практика: сначала тестируйте обновления на тестовой машине или в контейнере, особенно для серверов.

Альтернативы и современные способы распространения

Помимо DNF, на Fedora и RHEL можно использовать RPM и YUM. Современные универсальные форматы, такие как Flatpak, Snap или AppImage, позволяют распространять пакеты независимо от базовой системы.

Краткая матрица сравнения:

ПодходЧто делаетКогда выбрать
DNF/YUM/RPMУстанавливает системные пакеты из RPM-репозиториев, управляет зависимостямиДля системных сервисов и библиотек, когда нужен репозиторий ОС
FlatpakИзолированные приложения в песочнице, одна версия для разных дистрибутивовДесктоп-приложения с графическим интерфейсом
SnapПохож на Flatpak, централизованный магазинЕсли нужна простая доставка приложений для разных дистрибутивов
AppImageПортативные бинарные файлы без установкиБыстрая проверка приложения без привязки к системе

Частые проблемы и их решения

  1. “Проблемы с зависимостями” — проверьте репозитории, выполните sudo dnf clean all и затем sudo dnf update. Если конфликт возникает между репозиториями, временно отключите проблемный репозиторий через –disablerepo=<имя>.

  2. “Пакет не найден” — убедитесь, что репозитории настроены и метаданные обновлены (sudo dnf makecache). Проверьте написание имени пакета.

  3. “Проблемы с сертификатами репозитория” — проверьте дату/время системы и настройки SSL. Иногда помогает обновление CA-пакета.

  4. “Откат транзакции приводит к удалению важных пакетов” — перед откатом изучите dnf history info , создайте резервную копию конфигураций.

Решения для бизнеса и безопасности

Факты и рекомендации:

  • Частые обновления снижают риск эксплойтов. Тестируйте обновления в staging перед production.
  • Используйте только доверенные репозитории и подписанные пакеты (GPG-подпись).
  • Отключайте ненужные сторонние репозитории, если они конфликтуют с базовыми.
  • Журналируйте и храните dnf history для аудита изменений.

Рекомендации по усилению безопасности:

  • Включите проверку GPG-подписей в конфигурации /etc/dnf/dnf.conf.
  • Настройте мониторинг наличия обновлений и автоматические уведомления.
  • Для критичных серверов используйте ограниченный набор проверенных репозиториев и периодические тесты ролбэка.

Приватность и соответствие требованиям

При добавлении сторонних репозиториев учитывайте, какие метаданные собираются. Обычно DNF не отправляет персональные данные при установке, но репозитории могут вести учёт загрузок. Для соответствия GDPR/локальным требованиям используйте внутренние зеркала репозиториев и контролируйте доступ.

Чек-листы по ролям

Администратор сервера:

  • Проверить и зарегистрировать репозитории.
  • Настроить GPG-подписи и контроль доступа.
  • Настроить расписание обновлений и тестового обновления в staging.
  • Делать резервные копии конфигураций перед крупными обновлениями.

Десктоп-пользователь:

  • Использовать sudo dnf update регулярно.
  • Устанавливать Flatpak для графических приложений, если нужно изолированное окружение.
  • Очищать кэш (dnf clean) при нехватке места.

Разработчик пакетов:

  • Проверять deplist и убедиться, что зависимости минимальны.
  • Подписывать пакеты GPG-ключом организации.
  • Тестировать установку/удаление в чистой виртуальной машине.

Правила принятия изменений

Критерии приёмки установки пакета:

  • Пакет успешно установился без ошибок в stdout/stderr.
  • Служба (если есть) запустилась и работает корректно.
  • Конфигурационные файлы не потеряны или сохранены резервные копии.
  • Все тесты интеграции, затронутые пакетом, проходят.

Быстрые шаблоны команд и примеры для сценариев

Обновление системы с логами:

sudo dnf update -y | tee ~/dnf-update-$(date +%F).log

Автоматическое удаление пакетов и очистка кеша:

sudo dnf autoremove -y && sudo dnf clean all

Откат последней транзакции:

LAST=$(dnf history | awk 'NR==3{print $1}')
sudo dnf history undo $LAST

(проверяйте, какой ID возвращает команда перед выполнением)

Мини-методология для безопасных обновлений в Production

  1. Создайте тестовую копию сервера или снимок виртуальной машины.
  2. Выполните sudo dnf check-update и примените обновления в тестовой среде.
  3. Прогоните smoke-tests и регрессионные тесты.
  4. Если всё в порядке — примените обновления в production в окно обслуживания.
  5. Мониторьте логи и сервисы 24–48 часов; при проблемах используйте dnf history undo.

Диаграмма принятия решения

flowchart TD
  A[Нужно обновить пакет?] --> B{Это критичный сервер?}
  B -- Да --> C[Тестирование в staging]
  C --> D{Тесты пройдены?}
  D -- Да --> E[Плановое обновление в maintenance window]
  D -- Нет --> F[Откат/исправление и повторное тестирование]
  B -- Нет --> G[Обновить напрямую на рабочей машине]

Короткие ответы на часто задаваемые вопросы

Как проверить, какой репозиторий предоставляет пакет?

dnf repoquery --info <пакет>

Можно ли одновременно использовать DNF и Flatpak для одного приложения?

Да, но тогда у вас будут две отдельные установки и разные пути конфигурации. Flatpak изолирует окружение.

Как вернуть систему в состояние до обновления?

Используйте dnf history info для выбора транзакции и затем sudo dnf history undo , предварительно проверив затронутые пакеты.

Итог

DNF — мощный и надёжный инструмент управления пакетами в RPM-системах. Он прост в повседневном использовании и достаточно гибок для корпоративных сценариев при корректной настройке репозиториев, политики GPG-подписей и процедур тестирования. Для десктопа можно дополнять DNF Flatpak’ом или AppImage, а для серверов — следовать описанной mini-методологии и чек-листам.

Важно

Перед массовыми изменениями всегда тестируйте и делайте резервные копии. Используйте подписанные репозитории и храните историю dnf для аудита.

Краткое резюме

  • DNF заменил YUM и решает зависимости автоматически.
  • Основные команды: install, remove, update, check-update, history, deplist.
  • Тестирование обновлений и использование GPG-подписей — ключ к безопасности.

1-строчная глоссарий

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство