Qual é a diferença entre "reversão do histórico de DNF" e "desfazer histórico de DNF"?

14

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 undocomando. 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 -ye, 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.

Andrew Savinykh
fonte

Respostas:

17

undodesfaz apenas essa transação específica, enquanto rollbackdesfaz tudo entre essa transação e o estado atual do sistema.

Exemplo: você instala htop, depois instala ncdue glances, seguido pelo mcdia seguinte.

Mais tarde, você deseja desfazer a instalação do htop, portanto, usa a função desfazer para tentar desfazer a instalação do htop, mas ainda mantém os outros programas que você instalou posteriormente.

Se você revertida para a transação que instalado htop, você em vez disso iria desfazer a instalação de ncdu, glancese mc, enquanto ainda mantém htop.

Mio Rin
fonte
1
Sim, que eu também entendi, mas queria confirmar, obrigado por fazer isso! ;)
Andrew Savinykh