yum (Yellowdog Update Modified) e’ il manager di pacchetti RPM utilizzato su Red Hat, Fedora ed altre derivate. E’ possibile aggiungere ed estendere nuove funzionalita’ a yum attraverso l’uso di plugin.
yum history, nato come plugin, e’ stato integrato dalla versione 3.2.25 di yum, quindi utilizzabile da tutte le distro che ne usano una versione piu’ recente. Puo’ essere molto utile nel caso in cui abbiamo bisogno di analizzare quali pacchetti sono stati modificati recentemente ed effettuare un rollback.
Lista delle transizioni
Per ottenere la lista delle transizioni:
# yum history # in alternativa # yum history list Plugin abilitati:langpacks, presto, refresh-packagekit ID | Linea di comando | Data e ora | Azione/i | Modific ------------------------------------------------------------------------------- 49 | install hpijs -y | 2013-07-13 09:10 | Install | 7 48 | install tryton trytond | 2013-07-12 23:56 | Install | 15 47 | install -y postgresql-se | 2013-07-12 23:26 | Install | 1 46 | install openldap-devel.i | 2013-07-12 23:20 | I, U | 3 45 | install -y gcc | 2013-07-12 23:14 | I, U | 12 44 | remove audit-2.2.1-2.fc1 | 2013-07-12 23:12 | Erase | 4 ...
Possiamo anche fare una ricerca specifica per un pacchetto, ad esempio gcc.
# yum history list gcc Loaded plugins: langpacks, presto, refresh-packagekit, security ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 3 | install --nogpgcheck --e | 2013-01-24 00:37 | I, U | 101
In dettaglio
Notiamo che ad ogni comando dato con yum viene associato un ID univoco, attraverso il quale possiamo ottenere info piu’ dettagliate:
# yum history info 49 Plugin abilitati:langpacks, presto, refresh-packagekit ID transazione : 49 Ora inizio : Sat Jul 13 09:10:43 2013 rpmdb iniziale : 1313:aeaeca3fb36111c1a6ce2e544bdd1c991b57952c Ora termine : 09:11:00 2013 (17 secondi) rpmdb finale : 1320:eb369059a88dbd49bea3e0f206832ba5db20aae6 Utente : Alessandro Lorenzi Return-Code : Completato Linea di comando : install hpijs -y Transazione eseguita con: Installato rpm-4.10.1-3.fc18.i686 @koji-override-0/$releasever Installato yum-3.4.3-47.fc18.noarch @koji-override-0/$releasever Installato yum-metadata-parser-1.1.4-7.fc18.i686 @koji-override-0/$releasever Pacchetti modificati: Install hpijs-1:3.13.5-1.fc18.i686 @updates Dep-Install hplip-common-3.13.5-1.fc18.i686 @updates Dep-Install hplip-libs-3.13.5-1.fc18.i686 @updates Dep-Install libgphoto2-2.5.2-1.fc18.i686 @updates Dep-Install libieee1284-0.2.11-12.fc18.i686 @fedora Dep-Install net-snmp-libs-1:5.7.2-5.fc18.1.i686 @updates Dep-Install sane-backends-libs-1.0.23-7.fc18.i686 @updates history info
Troviamo l’utente che ha eseguito il comando, quando e’ stato eseguito e i pacchetti coinvolti
Rollback
Eccoci arrivati alla funzione fondamentale di yum history: annullare operazioni fatte precedentemente.
Ad esmpio se ci accorgiamo che un aggiornamento ha dato problemi o se semplicemente abbiamo eliminato qualche pacchetto sbagliato possiamo tornare allo stato precedente del sistema con il comando:
# yum history undo last # oppure # yum history undo ID Plugin abilitati:langpacks, presto, refresh-packagekit Undoing transaction 49, from Sat Jul 13 09:10:43 2013 ...
Possiamo, in maniera simile, ripetere un comando gia’ dato:
# yum history redo 229 Loaded plugins: langpacks, presto, refresh-packagekit, security Repeating transaction 229, from Wed Jul 10 16:13:10 2013 [...]
Testing time
Per provare ad usare questo comando provate installare un pacchetto, guardare la history di yum e annullare l’installazione,
Se avete bisogno di aiuto potete contattarmi rispondendo a questo post.