Premier Training & Business Partner Red Hat

yum history

Alessandro Lorenzi
Ti piacerebbe diventare anche tu uno di noi e
pubblicare i tuoi articoli nel blog degli RHCE italiani?

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.

Info about author

Alessandro Lorenzi

RHCE Consultant at Extraordy