LinuxRuLinux без лишней теории
Fedora и DNF5

Команды dnf в Fedora 44: от установки пакета до отката обновления

Редакция LinuxRu8 мин чтенияИнструкции

Команды dnf в Fedora 44 относятся к DNF5: install, remove, upgrade и search работают как раньше, а config-manager, группы и история получили новый синтаксис. Ниже рабочие команды для повседневных задач, отката неудачного обновления через dnf history и подключения RPM Fusion с кодеками.

Команды dnf в Fedora 44: от установки пакета до отката обновления
Фото: Unknown author Unknown author, GPL, Wikimedia Commons
Содержание
  1. Что такое dnf5
  2. Установка и поиск
  3. Обновление
  4. Группы пакетов
  5. История и откат
  6. RPM Fusion
  7. dnf, apt, pacman
  8. Настройка и ошибки
  9. Частые вопросы

Какой dnf стоит в Fedora 44 и почему старые инструкции ломаются

С Fedora 41 команда dnf запускает новый менеджер пакетов DNF5, переписанный на C++. В Fedora 44 всё так же: dnf и dnf5 делают одно и то же, а старый DNF4 можно поставить отдельно как dnf4, если какой-то скрипт без него не живёт.

Большинство привычных команд остались прежними: install, remove, upgrade, search. Сломались в основном вспомогательные вещи, которые любят копировать из статей 2020 года:

  • dnf config-manager --add-repo URL теперь пишется как dnf config-manager addrepo --from-repofile=URL;
  • dnf config-manager --set-enabled имя заменён на dnf config-manager setopt имя.enabled=1;
  • dnf groupinstall больше не нужен, работает dnf group install или запись через собачку: dnf install @multimedia;
  • вывод dnf history и dnf list выглядит иначе, поэтому скрипты, которые парсят текст, стоит проверить.

Узнать, что у вас стоит, можно так:

dnf --version
rpm -q dnf5

Если вы пришли с Debian или Ubuntu, логика та же, что у apt, отличаются названия подкоманд. Сравнение с apt разобрано в статье про команды apt, а таблица соответствий есть ниже.

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

Все команды, которые меняют систему, выполняются через sudo. Поиск и просмотр информации работают от обычного пользователя.

# найти пакет по слову в имени и описании
dnf search htop
# подробности: версия, репозиторий, размер
dnf info htop
# установить, можно сразу несколько
sudo dnf install htop btop ncdu
# поставить локальный rpm вместе с зависимостями
sudo dnf install ./google-chrome-stable_current_x86_64.rpm
# удалить пакет
sudo dnf remove htop
# переустановить, если файлы повреждены
sudo dnf reinstall htop

Частая ситуация: в инструкции написано "запустите dig", а команды нет. Ищем пакет, который её даёт:

dnf provides /usr/bin/dig

Ответ будет bind-utils. Так же ищутся недостающие библиотеки .so.

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

dnf list --installed
dnf repoquery --installed --qf "%{name} %{from_repo}\n" | sort -k2
dnf repolist

Вторая команда показывает репозиторий для каждого пакета. Удобно, когда нужно понять, что пришло из RPM Fusion или COPR, а что из штатных репозиториев Fedora.

Лишние зависимости

sudo dnf autoremove удаляет пакеты, которые ставились как зависимости и больше никому не нужны. Перед подтверждением прочитайте список: если там оказалось что-то нужное, пометьте пакет как установленный вручную командой sudo dnf mark user имя, и autoremove его больше не тронет.

Обновление системы и переход на новую версию Fedora

Обычное обновление делается одной командой. Ключ --refresh заставляет перечитать метаданные, даже если кэш ещё не устарел:

sudo dnf upgrade --refresh
# только посмотреть, что прилетит
dnf check-upgrade

dnf update тоже работает, это синоним. На Workstation центр приложений GNOME Software по умолчанию предлагает офлайн-обновления с перезагрузкой. После крупных обновлений Mesa, systemd или ядра перезагрузитесь и при обновлении из терминала.

Переход на следующий релиз

Апгрейд между версиями Fedora делается через встроенный в DNF5 system-upgrade. Сначала обновите текущую систему до конца, перезагрузитесь, потом скачайте пакеты нового релиза:

sudo dnf upgrade --refresh
sudo dnf system-upgrade download --releasever=45
sudo dnf offline reboot

Компьютер перезагрузится в минимальное окружение, поставит пакеты и загрузится уже в новой версии. Отменить скачанное обновление до перезагрузки можно командой sudo dnf offline clean. На момент написания текущий стабильный релиз Fedora 44, а выход Fedora 45 перенесли на конец октября 2026 года, поэтому номер в --releasever подставляйте после официального анонса. Порядок действий описан в документации Fedora Quick Docs.

Atomic-редакции (Silverblue, Kinoite) обновляются через rpm-ostree, а не через dnf.

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

Группа в Fedora - это набор пакетов под задачу: средства сборки, офисный пакет, целое окружение рабочего стола. В DNF5 у каждой группы есть идентификатор, его и используйте в командах, так надёжнее, чем длинные имена с пробелами.

# список групп с идентификаторами
dnf group list --hidden
# что входит в группу
dnf group info development-tools
# поставить группу
sudo dnf group install development-tools
# то же через собачку
sudo dnf install @development-tools
# убрать группу
sudo dnf group remove development-tools

Группа development-tools даёт gcc, make, git и прочее для сборки программ из исходников. Если нужен второй рабочий стол, например KDE Plasma поверх Workstation, ищите в списке окружения (environment) с суффиксом -desktop-environment. Проще, правда, сразу поставить спин Fedora KDE.

История транзакций: как откатить неудачное обновление

Каждая операция dnf записывается в историю с номером. Это главный инструмент, когда после обновления что-то сломалось.

# список транзакций
dnf history list
# что именно менялось в транзакции 42
dnf history info 42
# отменить одну транзакцию
sudo dnf history undo 42
# вернуть систему к состоянию после транзакции 38
sudo dnf history rollback 38

Разница между ними существенная. undo отменяет одну конкретную операцию, остальные изменения остаются. rollback отменяет всё, что было после указанной транзакции. Для разового "вчера обновил пакет, и он сломался" обычно хватает undo.

Подводный камень: откат обновления требует старой версии пакета, а в репозиториях Fedora обычно лежит только последняя. Если dnf пишет, что пакет недоступен, остаются два пути: sudo dnf downgrade имя, если версия ещё есть в репозитории fedora (там лежит состояние на день релиза), или ручная загрузка старой сборки из Koji, системы сборки Fedora.

Если сломалось ядро

Fedora хранит три последних ядра (параметр installonly_limit=3). При загрузке выберите предыдущее ядро в меню GRUB, а пока исправление не вышло, запретите обновлять пакет:

sudo dnf versionlock add kernel-6.19.5-200.fc44
dnf versionlock list
sudo dnf versionlock delete kernel-6.19.5-200.fc44

Номер версии в примере условный, подставьте свой из rpm -q kernel. Блокировку не забудьте снять, иначе вы перестанете получать исправления безопасности.

Перед крупным обновлением запишите номер последней транзакции из dnf history list. Если что-то пойдёт не так, будет понятно, к какой точке возвращаться, и не придётся вычислять её по датам. На Btrfs ещё надёжнее сделать снимок, его создание описано в статье про Snapper.

Как подключить RPM Fusion и поставить кодеки

В штатных репозиториях Fedora нет пакетов с патентными ограничениями и несвободных драйверов. Их собирает сторонний проект RPM Fusion из двух частей: free (свободный софт, который Fedora не может распространять из-за патентов, например полный ffmpeg) и nonfree (драйверы NVIDIA, Steam, кодеки с закрытой лицензией). Команда установки взята из официальной страницы RPM Fusion:

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

$(rpm -E %fedora) сам подставит номер вашей версии. Дальше пакет метаданных для центра приложений и репозиторий OpenH264 от Cisco:

sudo dnf install rpmfusion-*-appstream-data
sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1

Полный ffmpeg и аппаратное ускорение

sudo dnf swap ffmpeg-free ffmpeg --allowerasing
sudo dnf install @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
# AMD: декодирование видео на видеокарте
sudo dnf install mesa-va-drivers-freeworld
# Intel, свежие поколения
sudo dnf install intel-media-driver

swap заменяет урезанную сборку ffmpeg-free на полную одной транзакцией, а --allowerasing разрешает dnf убрать конфликтующие пакеты. Драйвер NVIDIA из RPM Fusion ставится пакетом akmod-nvidia, подробности и нюансы Secure Boot есть в статье про драйвер NVIDIA.

COPR и сторонние репозитории

COPR - это личные репозитории сборщиков, аналог PPA в Ubuntu. Подключаются так:

sudo dnf copr enable владелец/проект
sudo dnf copr remove владелец/проект

Если подкоманда copr не находится, поставьте пакет dnf5-plugins. Репозиторий от разработчика программы (Docker, VS Code) добавляется через sudo dnf config-manager addrepo --from-repofile=URL.

Шпаргалка: dnf рядом с apt и pacman

ЗадачаFedora (dnf)Debian/Ubuntu (apt)Arch (pacman)
Обновить всёdnf upgrade --refreshapt update && apt upgradepacman -Syu
Установитьdnf install pkgapt install pkgpacman -S pkg
Удалитьdnf remove pkgapt remove pkgpacman -R pkg
Найтиdnf search словоapt search словоpacman -Ss слово
Чей файлdnf provides /путьapt-file search /путьpacman -F /путь
Лишние зависимостиdnf autoremoveapt autoremovepacman -Rns $(pacman -Qdtq)
Очистить кэшdnf clean allapt cleanpaccache -r
Откат операцииdnf history undo Nштатно нетштатно нет, pacman -U из кэша

Последняя строка объясняет, за что Fedora любят на рабочих машинах: история транзакций с откатом встроена прямо в менеджер пакетов. В Arch похожего добиваются снимками файловой системы, подробнее в разборе команд pacman.

Ускорение загрузки и разбор типичных ошибок

Настройки dnf лежат в /etc/dnf/dnf.conf. Две строки, которые реально помогают на медленном канале:

[main]
max_parallel_downloads=10
fastestmirror=True

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

Что делать, если dnf ругается

  • Curl error или Cannot download repomd.xml. Зеркало недоступно или сеть рвётся. Выполните sudo dnf clean metadata и повторите. Если ошибка в стороннем репозитории, временно отключите его ключом --disablerepo=имя.
  • Конфликт пакетов при обновлении. Чаще всего виноват сторонний репозиторий, который отстал от Fedora. Попробуйте sudo dnf upgrade --refresh --best --allowerasing и внимательно прочитайте, что dnf предлагает удалить.
  • GPG check FAILED. Ключ репозитория не импортирован или пакет подписан другим ключом. Не отключайте проверку подписи навсегда: обновите пакет fedora-gpg-keys или переустановите release-пакет стороннего репозитория.
  • Система в странном состоянии после смешанных репозиториев. sudo dnf distro-sync приводит версии пакетов к тем, что лежат во включённых репозиториях, даже если для этого нужно понизить версию.

Если места на диске не хватает, кэш чистится командой sudo dnf clean all, а остальные способы собраны в статье о том, как освободить место на диске. Полный план первичной настройки свежей системы есть в материале Fedora 44 после установки.

Частые вопросы

Чем dnf отличается от dnf5?

В Fedora 41 и новее это одна программа: команда dnf ведёт на DNF5. Старый DNF4 можно поставить отдельно и вызывать как dnf4, если какой-то скрипт требует старый синтаксис.

Почему не работает dnf config-manager --add-repo?

Это синтаксис DNF4. В DNF5 репозиторий добавляется командой dnf config-manager addrepo --from-repofile=URL, а включается через setopt имя.enabled=1.

Как откатить обновление в Fedora?

Найдите номер транзакции в dnf history list и выполните sudo dnf history undo номер. Если старой версии пакета уже нет в репозиториях, загрузитесь со старым ядром или используйте dnf downgrade.

Нужно ли подключать RPM Fusion?

Для полного ffmpeg, аппаратного декодирования видео на AMD, драйвера NVIDIA и Steam из пакетов да. Если вы пользуетесь только Flatpak-приложениями и свободными драйверами, можно обойтись без него.

Как ускорить dnf?

Добавьте в /etc/dnf/dnf.conf строки max_parallel_downloads=10 и fastestmirror=True. Это ускоряет загрузку пакетов, но не саму установку.

Документация и источники

Читайте также

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