Qual é a diferença entre “rollback do histórico dnf” e “desfazer histórico do dnf”?

9

Vamos ler a documentação oficial :

dnf history rollback <transaction-spec> Undo all transactions performed after the specified transaction. If it is not possible to undo any transaction due to the current state of RPMDB, do not undo any transaction.

A ênfase é minha. Portanto, este comando se refere ao comando undo . Ok, vamos ler a documentação sobre desfazer:

dnf history undo <transaction-spec> Perform the opposite operation to all operations performed in the specified transaction. If it is not possible to undo any operation due to the current state of RPMDB, do not undo any operation.

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 um.

Esse entendimento está correto? (Eu apreciaria as respostas da experiência de primeira mão, não do ponto de vista de como você interpreta o manual, estou interessado em fatos, não palpites.)

Contexto: Eu preciso escrever um script que execute dnf upgrade -y e, em seguida, execute alguns testes e, em seguida, inverta as alterações dnf se os testes falharem. Eu estou procurando a melhor maneira de conseguir isso.

    
por Andrew Savinykh 05.03.2017 / 09:08

1 resposta

12

undo apenas desfaz essa transação específica, enquanto rollback desfaz tudo entre essa transação e o estado atual do sistema.

Exemplo: você instala htop , depois instala ncdu e glances , seguido por mc no dia seguinte.

Mais tarde, você deseja desfazer a instalação do htop, portanto, use a função desfazer para tentar desfazer a instalação do htop, mas ainda mantenha os outros programas instalados posteriormente.

Se você revertesse para a transação que instalou htop , em vez disso, você desfazia a instalação de ncdu , glances e mc , mantendo ainda htop .

    
por 05.03.2017 / 09:21