Давайте прочитаем официальную документацию :
dnf history rollback <transaction-spec>
Отменить все транзакции, выполненные после указанной транзакции. Если невозможно отменить какую-либо транзакцию из-за текущего состояния RPMDB, не отменяйте никакую транзакцию.
Акцент мой. Так что эта команда относится к undo
команде. Хорошо, давайте прочитаем документацию относительно отмены:
dnf history undo <transaction-spec>
Выполните операцию, противоположную всем операциям, выполненным в указанной транзакции. Если невозможно отменить какую-либо операцию из-за текущего состояния RPMDB, не отменяйте никакую операцию.
Похоже, что эти две команды делают одно и то же, за исключением того, что первая может отменить несколько транзакций, а вторая - только одну.
Это понимание правильно? (Я был бы признателен за ответы из первых рук, а не с точки зрения того, как вы интерпретируете руководство, меня интересуют факты, а не догадки.)
Контекст: мне нужно написать скрипт, который запускает dnf upgrade -y
и затем запускает некоторые тесты, а затем отменяет изменения dnf, если тесты не пройдены. Я ищу лучший способ достижения этого.