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

Управление пакетами RPM в Linux с помощью DNF

6 min read Linux Обновлено 21 Apr 2026
DNF: управление пакетами RPM в Linux
DNF: управление пакетами RPM в Linux

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

DNF — это удобный и безопасный способ управлять программным обеспечением на RPM‑системах. Он автоматически решает зависимости, поддерживает обратную совместимость с YUM и предоставляет журнал транзакций, который позволяет откатывать операции.

Что такое DNF?

DNF (Dandified YUM) — преемник YUM и стандартный менеджер пакетов в Fedora и RHEL. Он выполняет следующие базовые задачи:

  • Поиск пакетов и их метаданных.
  • Установку, удаление и переустановку пакетов.
  • Разрешение зависимостей и загрузку нужных RPM.
  • Поддержку журналов транзакций для откатов.

Коротко: DNF экономит вам время и снижает риск конфликтов зависимостей при управлении программным обеспечением.

Быстрая терминология

  • RPM — формат пакета для дистрибутивов семейства Red Hat.
  • Репозиторий — удалённое хранилище пакетов и метаданных.
  • Транзакция — единица операции DNF (установка/удаление/обновление).

Поиск пакетов с помощью DNF

Поиск по ключевым словам в доступных репозиториях:

dnf search browser

Вывод dnf search, список браузеров

Результат содержит пакеты, в названии или описании которых встречается ключевое слово.

Если нужно подробное описание конкретного пакета:

dnf info firefox

Чтобы просмотреть все доступные пакеты (постранично):

dnf list available | less

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

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

dnf list installed

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

Установка требует прав root или sudo. Пример установки Firefox:

sudo dnf install firefox

DNF автоматически разрешает зависимости и скачивает необходимые RPM.

Как посмотреть, какие зависимости будут установлены:

dnf deplist firefox

Важно: внимательно проверяйте список пакетов перед подтверждением, если вы работаете на критичных серверах.

Удаление пакетов

Базовая команда удаления:

sudo dnf remove firefox

DNF ведёт журнал всех транзакций. Его можно просмотреть так:

dnf history

Вывод dnf history — список транзакций

Журнал отображает ID транзакции, действие, дату и краткое описание. Вы можете откатить любую транзакцию по её ID:

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

Переустановка оставляет настройки (config) в системе, если они не удалялись вручную.

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

Проверка наличия обновлений:

sudo dnf check-update
sudo dnf update

Для обновления конкретного пакета:

sudo dnf update firefox

Вывод dnf update — список пакетов для обновления

Регулярные обновления повышают безопасность и стабильность системы.

Журнал транзакций и откат

DNF сохраняет историю изменений, что важно для отладки и восстановления состояния:

  • Просмотр списка транзакций: dnf history
  • Детали транзакции: dnf history info
  • Откат транзакции: sudo dnf history undo

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

Альтернативы и современные способы доставки приложений

  • YUM: совместимая надстройка, часто является ссылкой на DNF в современных дистрибутивах.
  • RPM: низкоуровневый инструмент для установки конкретных .rpm файлов (без автоматического разрешения зависимостей).
  • Flatpak: контейнеризированная доставка приложений, подходящая для рабочих столов и кросс‑дистрибутивного распространения.

Выбор зависит от сценария: для системных библиотек и сервера — DNF/RPM; для настольных приложений с изоляцией — Flatpak.

Практические рекомендации и методология

Мини‑методология быстрой и безопасной работы с DNF:

  1. Проверка: dnf check-update
  2. План: dnf list updates | less
  3. Бэкап конфигураций критичных сервисов
  4. Применение обновлений: sudo dnf update
  5. Проверка статуса сервисов и логов
  6. При проблемах — откат через dnf history undo

Когда не применять обновления автоматически:

  • На production‑серверах с жёстким SLA без тестовой среды.
  • Если обновление затрагивает системные компоненты, требующие ручной проверки.

Преимущество такого подхода — минимизация простоев и предсказуемость изменений.

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

Системный администратор:

  • Проверить репозитории и GPG‑ключи.
  • Выполнить dnf check-update и просмотреть список обновлений.
  • Сделать резервную копию конфигураций критичных сервисов.
  • Обновить test‑среду и прогнать smoke‑тесты.
  • Применить обновления в production в окно обслуживания.
  • Проверить сервисы и логи после обновления.

Разработчик / DevOps:

  • Убедиться, что CI использует ту же версию пакетов, что и тестовая среда.
  • Фиксировать версии в playbook / Dockerfile, если требуется повторяемость.
  • Составить план отката и проверить dnf history.

Пользователь рабочего стола:

  • Смотреть описание пакета через dnf info .
  • Устанавливать графические приложения через dnf или Flatpak, если требуется изоляция.
  • Периодически очищать кэш dnf clean packages.

Команды‑шпаргалка

# Поиск
dnf search 

# Подробная информация о пакете
dnf info 

# Установка
sudo dnf install 

# Удаление
sudo dnf remove 

# Переустановка
sudo dnf reinstall 

# Список установленных
dnf list installed

# Очистка
sudo dnf clean packages
sudo dnf clean metadata

# Удаление неиспользуемых зависимостей
sudo dnf autoremove

# История и откат
dnf history
sudo dnf history undo 

Сценарий отката — быстрый план действий

  1. Найдите проблемную транзакцию: dnf history
  2. Посмотрите детали: sudo dnf history info
  3. Сделайте копии изменённых конфигураций (если есть).
  4. Откатите транзакцию: sudo dnf history undo
  5. Перезапустите зависимые сервисы и проверьте логи.
  6. При необходимости — восстановите резервные конфигурации.

Важно: если откат затрагивает библиотеки, может потребоваться перезагрузка сервисов или системы.

Модель принятия решений (Mermaid)

flowchart TD
  A[Нужно установить/обновить ПО?] --> B{Это системная библиотека?}
  B -- Да --> C[Использовать DNF/RPM]
  B -- Нет --> D{Нужна ли изоляция и кросс‑дистрибутивность?}
  D -- Да --> E[Использовать Flatpak]
  D -- Нет --> C
  C --> F[Проверить обновления: dnf check-update]
  F --> G[Применить: sudo dnf update]
  G --> H[Проверить сервисы и логи]
  H --> I[При проблемах: sudo dnf history undo ]

Когда DNF может не подойти

  • Если вам нужно установить один локальный .rpm без доступа к репозиториям — используйте rpm -i, но помните о зависимостях.
  • Для безопасной упаковки и распространения настольных приложений между дистрибутивами лучше подходит Flatpak.
  • В компактных контейнерах без пакетных менеджеров (например, минимальные Docker‑образов) управление пакетами может быть избыточным.

Критерии приёмки

  • Пакет установлен и доступен: rpm -q или dnf list installed | grep .
  • Служба, зависящая от пакета, стартует и работает: systemctl status .
  • При обновлении не возникло ошибок в логах: journalctl -u –since “5 minutes ago”.

Часто задаваемые вопросы

Q: Чем DNF отличается от YUM?

A: DNF — это современная реализация менеджера пакетов, с улучшенным разрешением зависимостей и производительностью. В новых дистрибутивах команда yum часто является символьной ссылкой на dnf.

Q: Как отменить последнюю установку пакета?

A: Найдите ID транзакции через dnf history и используйте sudo dnf history undo .

Q: Как освободить место после установки пакетов?

A: Используйте sudo dnf autoremove для удаления неиспользуемых зависимостей и sudo dnf clean packages для очистки кэша.

Дополнительные ресурсы

  • Если вы переходите с YUM, посмотрите алиасы и совместимость: ls -l /usr/bin/yum
  • Для настольных приложений изучите Flatpak как альтернативу.

Related: The Best Desktop Alternatives for Fedora

Сводка

DNF — надёжный инструмент для управления пакетами в RPM‑системах. Он упрощает установку, обновление и удаление ПО, заботится о зависимостях и предоставляет журнал транзакций для отката. Используйте чеклисты и тестовую среду при обновлениях на production, а для настольных приложений рассматривайте Flatpak, если нужна изоляция или портируемость.

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

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

Синхронизация Google Calendar с Windows 10 Календарём
Windows

Синхронизация Google Calendar с Windows 10 Календарём

Steam на Linux — установка и лучшие игры
Игры

Steam на Linux — установка и лучшие игры

Почта на Mac: настройка, управление и советы
Руководство

Почта на Mac: настройка, управление и советы

Как добавить гибернацию в меню «Пуск» Windows 10
Windows

Как добавить гибернацию в меню «Пуск» Windows 10

Как найти пароль Wi‑Fi в Windows 10
Сеть

Как найти пароль Wi‑Fi в Windows 10

Математика в Obsidian: MathJax и Latex Suite
Руководство

Математика в Obsidian: MathJax и Latex Suite