Utilizza la cronologia delle transazioni yum

By | Agosto 23, 2018

Presentazione

Dalla versione 3.2.25 di yum (già disponibile in RHEL 6), è possibile utilizzare la cronologia delle transazioni(transaction history).
Per cominciare, tutte le operazioni di installazione o rimozione del pacchetto sono registrate nel rpmdb.

Per visualizzare la versione rpmdb, digitare:

# yum version
Loaded plugins: fastestmirror, langpacks
Installed: 7/x86_64                 539:c8c53419da0ae4cba61f019df443d3c10593a208
Group-Installed: yum                 14:d92850d928d628772a0a1d95c98e078545b0eea0
version

Le informazioni in grassetto rappresentano la versione rpmdb. Se due server hanno la stessa versione di rpmdb, sono strettamente identici dal punto di vista di yum.

Transaction history

Quindi, può essere interessante sapere quali operazioni sono state fatte in precedenza: è lo scopo principale della cronologia delle transazioni.

Per fare l’ultima operazione yum, digita:

# yum history info
Loaded plugins: fastestmirror, langpacks
Transaction ID : 12
Begin time     : Mon Nov 10 11:28:01 2014
Begin rpmdb    : 538:541464668d769a2bb7dbfc8337e305ab6db9fb47
End time       :            11:28:03 2014 (2 seconds)
End rpmdb      : 539:c8c53419da0ae4cba61f019df443d3c10593a208
User           : root 
Return-Code    : Success
Command Line   : install setools-console
Transaction performed with:
    Installed     rpm-4.11.1-16.el7.x86_64                        @anaconda
    Installed     yum-3.4.3-118.el7.centos.noarch                 @anaconda
    Installed     yum-plugin-fastestmirror-1.1.31-25.el7_0.noarch @updates
Packages Altered:
    Install setools-console-3.3.7-46.el7.x86_64 @base
history info

Qui, puoi vedere che il pacchetto setools-console è stato installato. È anche possibile vedere la versione rpmdb prima e dopo l’operazione, la data, il tempo impiegato dall’installazione e lo stato dell’operazione (successo/fallimento).

Per ottenere l’elenco di tutte le operazioni registrate da yum precedentemente, digitare:

# yum history list all
Loaded plugins: fastestmirror, langpacks
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    12 | root <root>              | 2014-11-10 11:28 | Install        |    1
    11 | root <root>              | 2014-11-01 06:22 | Install        |    5
    10 | root <root>              | 2014-11-01 06:21 | Install        |    7
     9 | root <root>              | 2014-11-01 06:04 | Install        |    7
     8 | root <root>              | 2014-11-01 06:00 | Install        |    5
     7 | root <root>              | 2014-10-29 17:12 | Install        |    2
     6 | root <root>              | 2014-10-29 16:02 | Install        |    9
     5 | root <root>              | 2014-10-29 15:39 | Install        |   37
     4 | root <root>              | 2014-10-27 08:58 | Update         |   14
     3 | root <root>              | 2014-10-16 10:01 | I, U           |   47
     2 | root <root>              | 2014-09-05 15:32 | I, U           |   49
     1 | System <unset>           | 2014-07-19 13:39 | Install        |  464
history list

Nota 1: la colonna Altered rappresenta il numero di pacchetti modificati.
Nota 2: se non si specifica l’opzione all, si ottengono le venti operazioni più recenti.
Nota3: il comando yum history legge il file /var/log/yum.log.

Per ottenere i dettagli di una di queste operazioni (qui l’operazione ha chiamato 9), digitare:

# yum history list 9
Loaded plugins: fastestmirror, langpacks
ID     | Command line             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     9 | install gcc              | 2014-11-01 06:04 | Install        |    7
history list

Per ottenere ulteriori dettagli su una delle operazioni (qui l’operazione chiamata 12), digitare:

# yum history info 12
Loaded plugins: fastestmirror, langpacks
Transaction ID : 12
Begin time     : Mon Nov 10 11:28:01 2014
Begin rpmdb    : 538:541464668d769a2bb7dbfc8337e305ab6db9fb47
End time       :            11:28:03 2014 (2 seconds)
End rpmdb      : 539:c8c53419da0ae4cba61f019df443d3c10593a208
User           : root 
Return-Code    : Success
Command Line   : install setools-console
Transaction performed with:
    Installed     rpm-4.11.1-16.el7.x86_64                        @anaconda
    Installed     yum-3.4.3-118.el7.centos.noarch                 @anaconda
    Installed     yum-plugin-fastestmirror-1.1.31-25.el7_0.noarch @updates
Packages Altered:
    Install setools-console-3.3.7-46.el7.x86_64 @base
history info

Per ottenere l’elenco di tutte le operazioni registrate da yum precedentemente organizzate per data, digitare:

# yum history summary
Loaded plugins: fastestmirror, langpacks
Login user                 | Time                | Action(s)        | Altered
-------------------------------------------------------------------------------
root <root>                | Last day            | E, I             |        3
root <root>                | Last 2 weeks        | Install          |       72
root <root>                | Last 3 months       | I, U             |      110
System <unset>             | Last 6 months       | Install          |      464
history summary

Nota: per ottenere l’elenco di tutte le installazioni dei pacchetti precedenti ordinati per data, digitare:
# rpm -qa –last

Per ottenere tutte le operazioni relative a un pacchetto specifico (qui il pacchetto kernel), digitare:

# yum elenco elenco kernel
Plugin caricati: speedmirror, langpacks
ID | Utente di accesso | Data e ora | Azione / i | Alterato
————————————————– —————————–
3 | root <root> | 2014-10-16 10:01 | I, U | 47
2 | root <root> | 2014-09-05 15:32 | I, U | 49
1 | Sistema <unset> | 2014-07-19 13:39 | Installa | 464
lista della storia

Per ottenere i dettagli delle operazioni riguardanti un pacchetto specifico (qui il pacchetto del kernel), digitare:

# yum history package-list kernel
Loaded plugins: fastestmirror, langpacks
ID     | Action(s)      | Package
-------------------------------------------------------------------------------
     3 | Install        | kernel-3.10.0-123.8.1.el7.x86_64
     2 | Install        | kernel-3.10.0-123.6.3.el7.x86_64
     1 | Install        | kernel-3.10.0-123.el7.x86_64
history package-list

Modifiche alla transaction history

Nell’espressione transaction history, è possibile trovare il termine della transaction (transazione). Ciò significa che è possibile annullare e ripetere ogni operazione precedentemente registrata, anche se sono stati coinvolti più pacchetti (è necessario fare attenzione ai pacchetti di glibc o selinux-policy che hanno dipendenze molto complicate).

Per annullare l’ultima operazione, digitare:

# yum history undo last
Loaded plugins: fastestmirror, langpacks
Undoing transaction 12, from Mon Nov 10 11:28:01 2014
    Install setools-console-3.3.7-46.el7.x86_64 @base
Resolving Dependencies
--> Running transaction check
---> Package setools-console.x86_64 0:3.3.7-46.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                Arch          Version                Repository    Size
================================================================================
Removing:
 setools-console        x86_64        3.3.7-46.el7           @base        1.1 M

Transaction Summary
================================================================================
Remove  1 Package

Installed size: 1.1 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : setools-console-3.3.7-46.el7.x86_64                          1/1
  Verifying  : setools-console-3.3.7-46.el7.x86_64                          1/1

Removed:
  setools-console.x86_64 0:3.3.7-46.el7

Complete!

Per visualizzare la cronologia delle transazioni relativa al pacchetto setools-console, digitare:

# yum history list setools-console
Loaded plugins: fastestmirror, langpacks
ID     | Command line             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    13 | history undo last        | 2014-11-10 18:12 | Erase          |    1
    12 | install setools-console  | 2014-11-10 11:28 | Install        |    1
history list

Per reinstallare il pacchetto setools-console (l’operazione chiamata 12), digitare:

# yum history redo 12

Uso di rpm

Per mantenere una cronologia pulita, è necessario evitare l’uso del comando rpm il più possibile perché interrompe la cronologia delle transazioni.

Ad esempio, ecco una cronologia delle transazioni:

# yum history
Loaded plugins: fastestmirror, langpacks
ID     | Login user        | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     2 | root              | 2014-11-21 16:18 | I, U           |   85
     1 | System            | 2014-11-21 14:14 | Install        |  464
history list

Un nuovo pacchetto (qui zlib-devel) viene installato tramite il comando rpm:

# rpm -ivh zlib-devel-1.2.7-13.el7.x86_64.rpm

Successivamente, viene eseguito un aggiornamento globale del pacchetto:

# yum update
...
Warning: RPMDB altered outside of yum.
...

Ora, se chiediamo la cronologia delle transazioni, otteniamo:

# yum history
Loaded plugins: fastestmirror, langpacks
ID     | Login user        | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     3 | root              | 2014-11-25 11:15 | I, U           |   31  <
     2 | root              | 2014-11-21 16:18 | I, U           |   85 >
     1 | System            | 2014-11-21 14:14 | Install        |  464
history list

I segni < e > visualizzati mostrano che alcune informazioni sono andate perse (il pacchetto installato tramite il comando rpm non ha informazioni associate).

Non c’è modo di risolvere questo problema. L’unica opzione è cancellare la cronologia delle transazioni e nascondere tutte le precedenti operazioni yum. Per farlo, digita:

# yum history new

Per evitare questo problema, puoi digitare:

# yum install zlib-devel
or
# yum install /path/to/zlib-devel-1.2.7-13.el7.x86_64.rpm

Recupero delle transazioni

Se durante un aggiornamento il sistema si arresta al riavvio, digita:

# yum-complete-transaction

Questo comando cerca le transazioni yum incomplete od interrotte e tenta di completarle.

Fonte: Guida alla distribuzione di RHEL 6.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.