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

DNF — это удобный и безопасный способ управлять программным обеспечением на RPM‑системах. Он автоматически решает зависимости, поддерживает обратную совместимость с YUM и предоставляет журнал транзакций, который позволяет откатывать операции.
Что такое DNF?
DNF (Dandified YUM) — преемник YUM и стандартный менеджер пакетов в Fedora и RHEL. Он выполняет следующие базовые задачи:
- Поиск пакетов и их метаданных.
- Установку, удаление и переустановку пакетов.
- Разрешение зависимостей и загрузку нужных RPM.
- Поддержку журналов транзакций для откатов.
Коротко: DNF экономит вам время и снижает риск конфликтов зависимостей при управлении программным обеспечением.
Быстрая терминология
- RPM — формат пакета для дистрибутивов семейства Red Hat.
- Репозиторий — удалённое хранилище пакетов и метаданных.
- Транзакция — единица операции DNF (установка/удаление/обновление).
Поиск пакетов с помощью DNF
Поиск по ключевым словам в доступных репозиториях:
dnf search browser
Результат содержит пакеты, в названии или описании которых встречается ключевое слово.
Если нужно подробное описание конкретного пакета:
dnf info firefoxЧтобы просмотреть все доступные пакеты (постранично):
dnf list available | lessНавигация в less: F — вперёд, B — назад, / — поиск, Q — выход.
Список установленных пакетов:
dnf list installedУстановка пакетов
Установка требует прав root или sudo. Пример установки Firefox:
sudo dnf install firefoxDNF автоматически разрешает зависимости и скачивает необходимые RPM.
Как посмотреть, какие зависимости будут установлены:
dnf deplist firefoxВажно: внимательно проверяйте список пакетов перед подтверждением, если вы работаете на критичных серверах.
Удаление пакетов
Базовая команда удаления:
sudo dnf remove firefoxDNF ведёт журнал всех транзакций. Его можно просмотреть так:
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-updatesudo dnf updateДля обновления конкретного пакета:
sudo dnf update firefox
Регулярные обновления повышают безопасность и стабильность системы.
Журнал транзакций и откат
DNF сохраняет историю изменений, что важно для отладки и восстановления состояния:
- Просмотр списка транзакций: dnf history
- Детали транзакции: dnf history info
- Откат транзакции: sudo dnf history undo
Перед откатом всегда изучите: какие пакеты будут удалены/установлены и какие версии задействованы.
Альтернативы и современные способы доставки приложений
- YUM: совместимая надстройка, часто является ссылкой на DNF в современных дистрибутивах.
- RPM: низкоуровневый инструмент для установки конкретных .rpm файлов (без автоматического разрешения зависимостей).
- Flatpak: контейнеризированная доставка приложений, подходящая для рабочих столов и кросс‑дистрибутивного распространения.
Выбор зависит от сценария: для системных библиотек и сервера — DNF/RPM; для настольных приложений с изоляцией — Flatpak.
Практические рекомендации и методология
Мини‑методология быстрой и безопасной работы с DNF:
- Проверка: dnf check-update
- План: dnf list updates | less
- Бэкап конфигураций критичных сервисов
- Применение обновлений: sudo dnf update
- Проверка статуса сервисов и логов
- При проблемах — откат через 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 Сценарий отката — быстрый план действий
- Найдите проблемную транзакцию: dnf history
- Посмотрите детали: sudo dnf history info
- Сделайте копии изменённых конфигураций (если есть).
- Откатите транзакцию: sudo dnf history undo
- Перезапустите зависимые сервисы и проверьте логи.
- При необходимости — восстановите резервные конфигурации.
Важно: если откат затрагивает библиотеки, может потребоваться перезагрузка сервисов или системы.
Модель принятия решений (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, если нужна изоляция или портируемость.
Похожие материалы
Синхронизация Google Calendar с Windows 10 Календарём
Steam на Linux — установка и лучшие игры
Почта на Mac: настройка, управление и советы
Как добавить гибернацию в меню «Пуск» Windows 10
Как найти пароль Wi‑Fi в Windows 10