¿Cuál es la diferencia entre "reversión del historial de dnf" y "deshacer el historial de dnf"?

15

Leamos la documentación oficial :

dnf history rollback <transaction-spec> Deshacer todas las transacciones realizadas después de la transacción especificada. Si no es posible deshacer ninguna transacción debido al estado actual de RPMDB, no deshaga ninguna transacción.

El énfasis es mío. Entonces este comando se refiere al undocomando. Bien, leamos la documentación sobre deshacer:

dnf history undo <transaction-spec> Realice la operación opuesta a todas las operaciones realizadas en la transacción especificada. Si no es posible deshacer ninguna operación debido al estado actual de RPMDB, no deshaga ninguna operación.

Parece que esos dos comandos hacen lo mismo con la excepción de que el primero puede deshacer varias transacciones, y el segundo solo uno.

¿Es correcto este entendimiento? (Agradecería respuestas de primera mano, no desde el punto de vista de cómo interpreta el manual, me interesan los hechos, no las conjeturas).

Contexto: necesito escribir un script que se ejecute dnf upgrade -yy luego ejecute algunas pruebas y luego revierta los cambios de dnf si las pruebas fallan. Estoy buscando la mejor manera de lograr esto.

Andrew Savinykh
fuente

Respuestas:

18

undosolo deshace esa transacción específica, mientras que rollbackdeshace todo entre esa transacción y el estado actual del sistema.

Ejemplo: instala htop, luego instala ncduy glances, seguido por mcel día siguiente.

Posteriormente, desea deshacer la instalación de htop, por lo que utiliza la función de deshacer para intentar deshacer la instalación de htop, pero aún conserva los otros programas que instaló más tarde.

Si retrocedió a la transacción que se instaló htop, en su lugar, deshacería la instalación de ncdu, glancesy mc, al mismo tiempo, la mantendría htop.

Mio Rin
fuente
1
Sí, eso también lo entendí, pero quería confirmar, ¡gracias por hacerlo! ;)
Andrew Savinykh