Vamos ler a documentação oficial :
dnf history rollback <transaction-spec>
Desfazer todas as transações realizadas após a transação especificada. Se não for possível desfazer nenhuma transação devido ao estado atual do RPMDB, não desfaça nenhuma transação.
A ênfase é minha. Portanto, este comando se refere ao undo
comando. Ok, vamos ler a documentação referente a desfazer:
dnf history undo <transaction-spec>
Execute a operação oposta a todas as operações executadas na transação especificada. Se não for possível desfazer nenhuma operação devido ao estado atual do RPMDB, não desfaça nenhuma operação.
Parece que esses dois comandos fazem as mesmas coisas, com a exceção de que o primeiro pode desfazer várias transações e o último apenas uma.
Esse entendimento está correto? (Gostaria de receber respostas da experiência em primeira mão, não do ponto de vista de como você interpreta o manual, estou interessado em fatos, não em suposições.)
Contexto: preciso escrever um script que seja executado dnf upgrade -y
e, em seguida, execute alguns testes e, em seguida, inverta as alterações do dnf se os testes falharem. Estou procurando a melhor maneira de conseguir isso.