Introducción
El historial de DNF es útil porque separa las transacciones completadas de los comandos que fallaron antes de que se confirmara una transacción. El objetivo de una reversión (rollback) debe ser una transacción completada, no cualquier línea de comandos fallida.
En este laboratorio, la configuración instala el paquete pequeño tree y registra ese ID de transacción. Usted capturará una operación de paquete fallida, inspeccionará el historial de DNF, revisará la transacción de instalación preparada, la deshará y verificará que tree ya no esté instalado.
Inspeccionar el historial reciente de DNF
En este paso, leerá las transacciones de paquetes recientes antes de intentar cualquier reversión.
Muévase al directorio del proyecto y cree un espacio de trabajo.
cd /home/labex/project
mkdir -p update-rollback
Guarde el historial reciente de DNF.
sudo dnf history list | tee update-rollback/history-before.txt
Compruebe que tree esté instalado actualmente.
rpm -q tree | tee update-rollback/tree-query-before.txt
La última transacción exitosa es la instalación preparada de tree realizada durante la configuración.
Capturar una operación de paquete fallida
En este paso, ejecutará un comando de paquete que fallará antes de instalar nada. Esto le proporcionará resultados de error para comparar con el historial de transacciones completadas.
Intente instalar un nombre de paquete que no existe.
sudo dnf -y install rhce-missing-package 2>&1 | tee update-rollback/failed-install.txt || true
Lea el error.
sed -n '1,16p' update-rollback/failed-install.txt
Este comando fallido es una evidencia útil, pero no es la transacción que usted deshará.
Revisar el objetivo de la reversión
En este paso, inspeccionará la transacción completada que instaló tree. En un incidente real, elegiría este ID desde dnf history list; el laboratorio almacena el ID preparado para que pueda concentrarse en el flujo de trabajo de deshacer (undo).
Guarde el ID de la transacción preparada.
cat /var/tmp/rhce-tree-transaction-id | tee update-rollback/transaction-id.txt
Lea los detalles de esa transacción.
tid=$(cat update-rollback/transaction-id.txt)
sudo dnf history info "$tid" | sed -n '1,28p' | tee update-rollback/transaction-info.txt
Los detalles de la transacción deberían mostrar la instalación de tree.
Deshacer la transacción de instalación completada
En este paso, deshará la transacción de instalación de tree completada. El comando de deshacer utiliza el ID de la transacción, no el comando de paquete fallido.
Lea el ID de la transacción.
tid=$(cat update-rollback/transaction-id.txt)
Deshaga la transacción.
sudo dnf -y history undo "$tid" | tee update-rollback/undo.txt
Guarde el historial después de deshacer.
sudo dnf history list | tee update-rollback/history-after.txt
DNF registra la acción de deshacer como una nueva transacción.
Verificar el resultado de la reversión
En este paso, confirmará que el paquete instalado por la transacción preparada ya no está presente.
Consulte el paquete.
rpm -q tree | tee update-rollback/tree-query-after.txt || true
Compruebe la ruta del comando.
command -v tree || true
Lea las últimas entradas del historial.
sudo dnf history list | sed -n '1,6p'
La reversión eliminó tree, mientras que el comando fallido del paquete inexistente permaneció solo como evidencia de diagnóstico.
Resumen
Usted inspeccionó el historial de DNF, capturó una operación de paquete fallida, revisó una transacción de instalación completada, utilizó dnf history undo para revertirla y verificó que el paquete instalado por dicha transacción fue eliminado.



