YUM : Utilisation de l'historique

De Adadov.net wiki
Aller à : navigation, rechercher
Ecrit Par : Adadov

Présentation

YUM a ajouté depuis quelques temps dans la liste de ses fonctionnalités une gestion de l'historique des opérations.
Cette fonctionnalité permet de retrouver les opérations effectuées avec leurs dates et tous les détails, mais elle permet aussi de réutiliser ces détails que ce soit pour annuler, rejouer ou exporter cette opération et la rejouer sur un autre système ...

Afficher l'historique

On peut afficher facilement la liste des dernières opérations ou rechercher les opérations liées à un paquet spécifique :

[root@linux] # yum history
ou
[root@linux] # yum history <paquet>
Loaded plugins: remove-with-leaves
ID     | Command line             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
   381 | install Xorg             | 2015-02-25 19:29 | Install        |    3
   380 | install gnome-shell      | 2015-02-25 19:25 | Install        |   71
   379 | install x2goserver x2gos | 2015-02-25 19:18 | Install        |   26
   378 | install http://download. | 2015-02-25 19:12 | Install        |    2 EE
   377 | update                   | 2015-02-25 01:17 | E, I, U        |  126 EE
   376 | install xclip.x86_64     | 2015-02-23 08:26 | Install        |    1
   375 | update                   | 2015-02-10 11:10 | E, I, U        |   45 EE
   374 | remove ceph-libs-compat- | 2015-02-04 13:59 | Erase          |    5
   373 | remove perl-PlRPC-0.2020 | 2015-02-04 13:55 | Erase          |    1
   372 | remove anaconda-yum-plug | 2015-02-04 13:54 | Erase          |    2
   371 | update                   | 2015-02-04 13:46 | E, I, U        |  114 EE
   370 | update                   | 2015-01-23 04:29 | Update         |   50
   369 | update                   | 2015-01-20 04:23 | I, U           |   61
   368 | update                   | 2015-01-19 07:15 | I, U           |  270 EE
   367 | update                   | 2015-01-19 07:07 | I, U           |  270 **
   366 | install avidemux-cli     | 2015-01-03 21:43 | Install        |    1
   365 | install avidemux avidemu | 2015-01-03 21:41 | Install        |   20
   364 | install system-release-s | 2014-12-13 06:52 | Install        |   11
   363 | remove firewalld-config- | 2014-12-13 06:52 | Erase          |    4
   362 | -y reinstall tftp-server | 2014-12-13 06:39 | Reinstall      |    1
history list

Pour chacune des opérations il est possible d'afficher le détail qui nous permettra de voir le détail de tous les paquets modifiés :

[root@linux] # yum history info 381
Loaded plugins: remove-with-leaves
Transaction ID : 381
Begin time     : Wed Feb 25 19:29:44 2015
Begin rpmdb    : 1753:38058cddc1253c7af67486bee3e4aaa329655b14
End time       :            19:29:47 2015 (3 seconds)
End rpmdb      : 1756:a287fbbe2b5529dbad600c8b8a4f7bb83d3588d5
User           : root <root>
Return-Code    : Success
Command Line   : install Xorg
Transaction performed with:
    Installed     rpm-4.12.0.1-4.fc21.x86_64               @updates
    Installed     yum-3.4.3-153.fc21.noarch                @fedora
    Installed     yum-metadata-parser-1.1.4-14.fc21.x86_64 @fedora
Packages Altered:
    Dep-Install libepoxy-1.2-1.fc21.x86_64                  @fedora
    Install     xorg-x11-server-Xorg-1.16.3-2.fc21.x86_64   @updates
    Dep-Install xorg-x11-server-common-1.16.3-2.fc21.x86_64 @updates
history info

On peut donc retrouver facilement le détail de tout ce qui a été fait, que ce soit les dépendances installées ou les paquets qu'on a choisi d'installé/mettre à jour.

Annulation d'une opération

C'est ma fonction favorite, il m'arrive souvent d'installer un logiciel et ses dépendances juste pour tester quelque chose et ensuite de vouloir remettre mon système dans l'état où il était avant, mais c'était assez long et fastidieux jusque là de devoir supprimer toutes les dépendances installées surtout dans certains cas où on se retrouve avec une bonne trentaine de dépendances pour un simple paquet installé.
Maintenant il nous suffit de retrouver l'ID de l'opération et demander à yum d'annuler l'opération

[root@linux] # yum history undo 381
root@srv:~
# yum history undo 380
Loaded plugins: remove-with-leaves
Undoing transaction 380, from Wed Feb 25 19:25:36 2015
    Dep-Install NetworkManager-config-connectivity-fedora-1:0.9.10.1-3.20150219git.fc21.x86_64 @updates
    Dep-Install abattis-cantarell-fonts-0.0.16-2.fc21.noarch                                   @fedora
    Install     gnome-shell-3.14.3-1.fc21.x86_64                                               @updates
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager-config-connectivity-fedora.x86_64 1:0.9.10.1-3.20150219git.fc21 will be erased
---> Package abattis-cantarell-fonts.noarch 0:0.0.16-2.fc21 will be erased
---> Package gnome-shell.x86_64 0:3.14.3-1.fc21 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================================================
 Package                                    Arch     Version                        Repository           Size
================================================================================================================
Removing:
 NetworkManager-config-connectivity-fedora  x86_64   1:0.9.10.1-3.20150219git.fc21  @updates             89
 abattis-cantarell-fonts                    noarch   0.0.16-2.fc21                  @fedora              121 k
 gnome-shell                                x86_64   3.14.3-1.fc21                  @updates             9.2 M

Transaction Summary
================================================================================================================
Remove  3 Packages
[...]
Complete!

Ah que c'est beau l'évolution de la technologie quand même !!!

Rejouer une opération

Si par hasard on a annulé une opération par erreur ou si une opération s'est mal passée, on peut avoir la soudaine envie de la relancer à l'identique et ben encore une fois C'EST POSSIBLE !!!!

[root@linux] # yum history redo 381
Loaded plugins: remove-with-leaves
Repeating transaction 381, from Wed Feb 25 19:29:44 2015
    Dep-Install libepoxy-1.2-1.fc21.x86_64                  @fedora
    Install     xorg-x11-server-Xorg-1.16.3-2.fc21.x86_64   @updates
    Dep-Install xorg-x11-server-common-1.16.3-2.fc21.x86_64 @updates
Resolving Dependencies
--> Running transaction check
---> Package xorg-x11-server-Xorg.x86_64 0:1.16.3-2.fc21 will be installed
--> Processing Dependency: xorg-x11-server-common >= 1.16.3-2.fc21 for package: xorg-x11-server-Xorg-1.16.3-2.fc21.x86_64
--> Processing Dependency: libepoxy.so.0()(64bit) for package: xorg-x11-server-Xorg-1.16.3-2.fc21.x86_64
--> Running transaction check
---> Package libepoxy.x86_64 0:1.2-1.fc21 will be installed
---> Package xorg-x11-server-common.x86_64 0:1.16.3-2.fc21 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================================
 Package                                Arch                   Version                       Repository               Size
===========================================================================================================================
Installing:
 xorg-x11-server-Xorg                   x86_64                 1.16.3-2.fc21                 updates                 1.5 M
Installing for dependencies:
 libepoxy                               x86_64                 1.2-1.fc21                    fedora                  185 k
 xorg-x11-server-common                 x86_64                 1.16.3-2.fc21                 updates                  55 k

Transaction Summary
===========================================================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 1.7 M
Installed size: 4.6 M
Is this ok [y/d/N]: y
Downloading packages:
(1/3): libepoxy-1.2-1.fc21.x86_64.rpm                                                               | 185 kB  00:00:00
(2/3): xorg-x11-server-common-1.16.3-2.fc21.x86_64.rpm                                              |  55 kB  00:00:00
(3/3): xorg-x11-server-Xorg-1.16.3-2.fc21.x86_64.rpm                                                | 1.5 MB  00:00:01
---------------------------------------------------------------------------------------------------------------------------
Total                                                                                      1.4 MB/s | 1.7 MB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction (shutdown inhibited)
  Installing : libepoxy-1.2-1.fc21.x86_64                                                                              1/3
  Installing : xorg-x11-server-common-1.16.3-2.fc21.x86_64                                                             2/3
  Installing : xorg-x11-server-Xorg-1.16.3-2.fc21.x86_64                                                               3/3
  Verifying  : xorg-x11-server-common-1.16.3-2.fc21.x86_64                                                             1/3
  Verifying  : xorg-x11-server-Xorg-1.16.3-2.fc21.x86_64                                                               2/3
  Verifying  : libepoxy-1.2-1.fc21.x86_64                                                                              3/3

Installed:
  xorg-x11-server-Xorg.x86_64 0:1.16.3-2.fc21

Dependency Installed:
  libepoxy.x86_64 0:1.2-1.fc21                        xorg-x11-server-common.x86_64 0:1.16.3-2.fc21

Complete!

Nous voilà avec notre opération qui a été rejouée à l'identique de sa première exécution. On peut donc jouer très longtemps les jours d'ennui à rejouer/annuler une opération et tout le monde pensera que vous travaillez.

Rejouer une opération sur un autre système

Les administrateurs système vont adorer cette possibilité, il s'agit de faire une mise à jour sur un système, on laissera ensuite le temps nécessaire aux tests afin de s'assurer que tout va bien, puis on va exporter les données de cette opération

[root@linux] # yum -q history addon-info 381 saved_tx > file_name
[root@linux] # cat file_name
1753:38058cddc1253c7af67486bee3e4aaa329655b14
0
8
fedora:42816:1417769625
home_zhonghuaren:7966:1424871621
rpmfusion-free:470:1418469697
rpmfusion-free-updates:206:1424681239
rpmfusion-nonfree:178:1418470804
rpmfusion-nonfree-updates:150:1424171123
updates:8958:1424855015
installed:1756:a287fbbe2b5529dbad600c8b8a4f7bb83d3588d5
3
mbr: xorg-x11-server-common,x86_64,0,1.16.3,2.fc21 70
  repo: updates
  ts_state: u
  output_state: 20
  isDep: True
  reason: dep
  reinstall: False
  relatedto: xorg-x11-server-Xorg,x86_64,0,1.16.3,2.fc21@a:dependson
  depends_on: xorg-x11-server-Xorg,x86_64,0,1.16.3,2.fc21@a
mbr: xorg-x11-server-Xorg,x86_64,0,1.16.3,2.fc21 70
  repo: updates
  ts_state: u
  output_state: 20
  isDep: False
  reason: user
  reinstall: False
mbr: libepoxy,x86_64,0,1.2,1.fc21 70
  repo: fedora
  ts_state: u
  output_state: 20
  isDep: True
  reason: dep
  reinstall: False
  relatedto: xorg-x11-server-Xorg,x86_64,0,1.16.3,2.fc21@a:dependson
  depends_on: xorg-x11-server-Xorg,x86_64,0,1.16.3,2.fc21@a

Puis transférer ce fichier sur les autres système et demander à yum de la rejouer

[root@linux] # yum load-transaction file_name

Et laissez la magie agir en regardant yum installer exactement les mêmes paquets dans les mêmes conditions que sur votre premier serveur.