Сегодня я хочу рассмотреть откаты (rollback) посредством пакетного менеджера DNF. Судя по частым вопросам на форумах много пользователей просто не знают всех возможностей DNF. По умолчанию он используется в дистрибутивах семейства Red Hat, или их форках. Большинство пользователей после установки и настройки системы ставят свой любимый софт. Некоторые «выпиливают» все лишнее по их мнению. Также много софта ставят просто на посмотреть, сравнить с аналогами и удалить.
Не всегда администрирование системы завершается корректно. Случаются ошибки и сбои. О причинах я рассуждать не буду. Отмечу лишь, что нет идеальных систем и пользователей. Ту же Fedora, как впрочем и другую систему очень легко сломать.
На этот случай есть разные способы резервного копирования, или снимки состояния системы (Silvrblue, OpenSUSE и т.д. ). А также пакетный менеджер DNF предоставляет систему откатов. Это конечно не снимок или бекап, а что-то вроде точек восстановления Windows. Что впоследствии я надеюсь поможет секономить много времени и нервов.
Откат изменений в Fedora
Для демонстрации я использую Fedora 31-beta. Для начала обновим систему:
sudo dnf upgrade --refresh
Далее проверим систему на ошибки:
sudo dnf check
Проверяет локальный packagedb и выдает информацию о любых найденных проблемах.
Как видим DNF выдал пустую строку, это значит проблем не нашел.
Далее посмотрим историю:
sudo dnf history list
Команда history позволяет пользователю просматривать события прошлых транзакций и действовать в соответствии с этой информацией. По умолчанию выводит весь список, также можно искать по номерам или пакетам.
Далее можно посмотреть историю отдельной транзакции:
sudo dnf history info
По умолчанию выводит последнюю, также можно искать по номеру или по произведенным действиям, установленным пакетам.
Здесь следует обратить внимание на строку:
Вот мы и пришли собственно к откатам:
dnf history rollback №(package-name)
Эта команда позволяет отменить все транзакции, выполненные после указанной транзакции. Здесь и далее я использую номера транзакций (мне так удобнее), если невозможно отменить некоторые транзакции из-за текущего состояния RPMDB(Код возврата), он не отменит ни одну транзакцию. Еще следует отметить, что откаты работают с пакетами установленными при помощи DNF и PackageKit (Gnome-Software, Dnfdragora). Флатпаки управляются отдельно.
Например я установлю текстовый редактор Geany. Далее откатим установку:
sudo dnf history rollback 14
Как видим мы откатили все изменения после 14-й транзакции.
Также есть и другие варианты использования команды history:
dnf history redo №(package-name)
Повторить указанную транзакцию:
sudo dnf history redo 15
Как видим мы опять установили Geany:
dnf history undo №(package-name)
Отменить указанную транзакцию.
sudo dnf history undo 17
Как видим мы опять удалили Geany:
sudo dnf history userinstalled
Показать все пакеты установленные пользователем:
Вот таким способом при помощи команды DNF — History можно откатывать систему. Делать их лучше на стабильной системе (в бете могут быть проблемы). Fedora 31-beta была взята для примера так как была под рукой на виртуальной машине. Это конечно же не полноценная замена бекапам, но часто помогает избавиться от лишней головной боли.
Выводы
Сегодня мы рассмотрели откаты посредством пакетного менеджера DNF. Эти и другие команды DNF более подробно можно посмотреть здесь, или в терминале при помощи команды man.
Дорогие читатели, если вы увидели ошибку или опечатку в статье «Как откатить изменения в Fedora», помогите нам ее исправить! Выделите ошибку и нажмите одновременно клавиши «Ctrl» и «Enter». Мы получим ваше сообщение и внесём исправления в ближайшее время.
Источник: winzen.ru