Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
8.4. Utiliser l'historique des transactions
La commande
yum history
permet aux utilisateurs d'examiner des informations sur la chronologie des transactions yum, les dates et heures auxquelles elles se sont produites, le nombre de paquets affectés, si ces transactions ont réussi ou échoué, et si la base de données RPM a été modifiées entre les transactions. En outre, cette commande peut être utilisée pour annuler ou refaire certaines transactions. Tout l'historique des données est stocké dans la base de données de l'historique (history DB) dans le répertoire /var/lib/yum/history/
.
8.4.1. Répertorier les transactions
Pour afficher une liste des vingt transactions les plus récentes, en tant qu'utilisateur
root
, veuillez exécuter yum history
sans argument supplémentaire, ou saisissez ce qui suit dans une invite shell :
yum
history
list
Pour afficher toutes les transactions, veuillez ajouter le mot-clé
all
:
yum
history
list
all
Pour uniquement afficher des transactions pendant une période donnée, veuillez utiliser la commande sous le format suivant :
yum
history
list
start_id..end_id
Vous pouvez également répertorier les transactions qui concernent un ou plusieurs paquets particuliers. Pour faire cela, veuillez utiliser la commande avec un nom de paquet ou une expression glob :
yum
history
list
glob_expression…
Exemple 8.19. Répertorier les cinq transactions les plus anciennes
Dans la sortie de
yum history list
, la transaction la plus récente est affichée en haut de la liste. Pour afficher des informations sur les cinq plus anciennes transactions stockées dans la base de données de l'historique, veuillez saisir :
~]# yum history list 1..5
Loaded plugins: langpacks, product-id, subscription-manager
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
5 | User <user> | 2013-07-29 15:33 | Install | 1
4 | User <user> | 2013-07-21 15:10 | Install | 1
3 | User <user> | 2013-07-16 15:27 | I, U | 73
2 | System <unset> | 2013-07-16 15:19 | Update | 1
1 | System <unset> | 2013-07-16 14:38 | Install | 1106
history list
Toutes les formes de la commande
yum history list
produisent une sortie tabulaire dont chaque ligne comporte les colonnes suivantes :
ID
— valeur d'entier identifiant une transaction particulière.Login user
— nom de l'utilisateur dont la session de connexion a été utilisée pour initier une transaction. Cette information est typiquement présentée sous la formeFull Name <username>
. Pour les transactions qui n'ont pas été effectuées par un utilisateur (comme les mises à jour automatiques du système),System <unset>
est utilisé à la place.Date and time
— la date et l'heure à laquelle une transaction a été effectuée.Action(s)
— liste d'actions effectuées au cours d'une transaction, comme décrit dans Tableau 8.1, « Valeurs possibles du champ « Action(s) » ».Altered
— nombre de paquets qui ont été affectés par une transaction, probablement suivis d'informations supplémentaires comme décrit dans Tableau 8.2, « Les valeurs possibles du champ « Altered » ».
Tableau 8.1. Valeurs possibles du champ « Action(s) »
Action | Abbréviation | Description |
---|---|---|
Downgrade | D | Un paquet au moins a été mis à niveau à une version antérieure. |
Erase | E | Un paquet au moins a été supprimé. |
Install | I | Un nouveau paquet au moins a été installé. |
Obsoleting | O | Un paquet au mons a été marqué comme obsolète. |
Reinstall | R | Un paquet au moins a été réinstallé. |
Update | U | Un paquet au moins a été mis à jour à une version plus récente. |
Tableau 8.2. Les valeurs possibles du champ « Altered »
Symbole | Description |
---|---|
< | Avant que la transaction se termine, la base de données rpmdb a été modifiée hors de yum. |
> | Une fois la transaction terminée, la base de données rpmdb a été modifiée hors de yum. |
* | La transaction ne s'est pas terminée correctement. |
# | La transaction s'est terminée correctement, mais yum a retourné un code de sortie différent de zéro. |
E | La transaction s'est terminée correctement, mais une erreur ou un avertissement s'est affiché. |
P | La transaction s'est terminée correctement, mais des problèmes existaient déjà dans la base de données rpmdb . |
s | La transaction s'est terminée correctement, mais l'option de ligne de commande --skip-broken a été utilisée et certains paquets ont été ignorés. |
Pour synchroniser le contenu de la base de données
rpmdb
ou yumdb
pour tout paquet installé avec la base de données rpmdb
ou yumdb
actuellement utilisée, veuillez saisir ce qui suit :
yum
history
sync
Pour afficher certaines statistiques générales sur la base de données de l'historique actuellement utilisée, veuillez utiliser le format suivant :
yum
history
stats
Exemple 8.20. Exemple de sortie de yum history stats
~]# yum history stats
Loaded plugins: langpacks, product-id, subscription-manager
File : //var/lib/yum/history/history-2012-08-15.sqlite
Size : 2,766,848
Transactions: 41
Begin time : Wed Aug 15 16:18:25 2012
End time : Wed Feb 27 14:52:30 2013
Counts :
NEVRAC : 2,204
NEVRA : 2,204
NA : 1,759
NEVR : 2,204
rpm DB : 2,204
yum DB : 2,204
history stats
Yum permet également d'afficher un résumé de toutes les ancennes transactions. Pour cela, veuillez exécuter la commande sous la forme suivante en tant qu'utilisateur
root
:
yum
history
summary
Pour afficher les transactions d'une période donnée uniquement, veuillez saisir :
yum
history
summary
start_id..end_id
De même qu'avec la commande
yum history list
, vous pouvez également afficher un résumé des transactions concernant un ou plusieurs paquets particuliers en fournissant un nom de paquet ou une expression glob :
yum
history
summary
glob_expression…
Exemple 8.21. Résumé des cinq transactions les plus récentes
~]# yum history summary 1..5
Loaded plugins: langpacks, product-id, subscription-manager
Login user | Time | Action(s) | Altered
-------------------------------------------------------------------------------
Jaromir ... <jhradilek> | Last day | Install | 1
Jaromir ... <jhradilek> | Last week | Install | 1
Jaromir ... <jhradilek> | Last 2 weeks | I, U | 73
System <unset> | Last 2 weeks | I, U | 1107
history summary
Toutes les formes de la commande
yum history summary
produisent une sortie tabulaire simplifiée similaire à la sortie de yum history list
.
Comme indiqué ci-dessus, les commandes
yum history list
et yum history summary
sont orientées vers les transactions, et même si elles permettent d'uniquement afficher les transactions concernant un ou plusieurs paquets en particulier, des détails cruciaux seront manquants, comme la version des paquets. Pour répertorier les transactions depuis la perspective du paquet, veuillez exécuter la commande suivante en tant qu'utilisateur root
:
yum
history
package-list
glob_expression…
Exemple 8.22. Traçage de l'historique d'un paquet
Par exemple, pour tracer l'historique de subscription-manager et de ses paquets connexes, veuillez saisir ce qui suit dans l'invite shell :
~]# yum history package-list subscription-manager\*
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
ID | Action(s) | Package
-------------------------------------------------------------------------------
2 | Updated | subscription-manager-1.13.22-1.el7.x86_64 EE
2 | Update | 1.15.9-15.el7.x86_64 EE
2 | Obsoleted | subscription-manager-firstboot-1.13.22-1.el7.x86_64 EE
2 | Updated | subscription-manager-gui-1.13.22-1.el7.x86_64 EE
2 | Update | 1.15.9-15.el7.x86_64 EE
2 | Obsoleting | subscription-manager-initial-setup-addon-1.15.9-15.el7.x86_64 EE
1 | Install | subscription-manager-1.13.22-1.el7.x86_64
1 | Install | subscription-manager-firstboot-1.13.22-1.el7.x86_64
1 | Install | subscription-manager-gui-1.13.22-1.el7.x86_64
history package-list
Dans cet exemple, trois paquets ont été installés pendant l'installation initiale du système : subscription-manager, subscription-manager-firstboot, et subscription-manager-gui. Dans la troisième transaction, tous les paquets ont été mis à jour de la version 1.10.11 à la version 1.10.17.
8.4.2. Examiner les transactions
Pour afficher le résumé d'une transaction unique, en tant qu'utilisateur
root
, utilisez la commande yum history summary
sous la forme suivante :
yum
history
summary
id
Ici, id correspond à l'ID de la transaction.
Pour examiner une ou plusieurs transactions en particulier de manière plus détaillée, veuillez exécuter la commande suivante en tant qu'utilisateur
root
:
yum
history
info
id…
L'argument id est optionnel et yum utilise automatiquement la dernière transaction lorsque vous l'omettez. Remarquez que vous pouvez également utiliser une gamme de transaction lorsque vous souhaitez spécifiez plus d'une transaction :
yum
history
info
start_id..end_id
Exemple 8.23. Exemple de sortie de yum history info
Ci-dessous figure un exemple de sortie de deux transactions, installant chacune un nouveau paquet :
~]# yum history info 4..5
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Transaction ID : 4..5
Begin time : Mon Dec 7 16:51:07 2015
Begin rpmdb : 1252:d2b62b7b5768e855723954852fd7e55f641fbad9
End time : 17:18:49 2015 (27 minutes)
End rpmdb : 1253:cf8449dc4c53fc0cbc0a4c48e496a6c50f3d43c5
User : Maxim Svistunov <msvistun>
Return-Code : Success
Command Line : install tigervnc-server.x86_64
Command Line : reinstall tigervnc-server
Transaction performed with:
Installed rpm-4.11.3-17.el7.x86_64 @rhel-7-server-rpms
Installed subscription-manager-1.15.9-15.el7.x86_64 @rhel-7-server-rpms
Installed yum-3.4.3-132.el7.noarch @rhel-7-server-rpms
Packages Altered:
Reinstall tigervnc-server-1.3.1-3.el7.x86_64 @rhel-7-server-rpms
history info
Vous pouvez également voir des informations supplémentaires, comme les options de configuration utilisées au moment de la transaction, ou à partir de quel référentiel et pour quelles raisons certains paquets ont été installés. Pour déterminer quelles sont les informations disponibles pour une transaction donnée, veuillez saisir ce qui suit à l'invite shell en tant qu'utilisateur
root
:
yum
history
addon-info
id
De même qu'avec
yum history info
, lorsqu'aucun id n'est fourni, yum utilise automatiquement la dernière transaction. Une autre manière de faire référence à la traduction la plus récente consiste à utiliser le mot-clé last
:
yum
history
addon-info
last
Exemple 8.24. Exemple de sortie de yum
history
addon-info
Pour la quatrième transaction dans l'historique, la commande
yum history addon-info
fournit la sortie suivante :
~]# yum history addon-info 4
Loaded plugins: langpacks, product-id, subscription-manager
Transaction ID: 4
Available additional history information:
config-main
config-repos
saved_tx
history addon-info
Dans la sortie de la commande
yum
history
addon-info
, trois types d'informations sont disponibles :
config-main
— options yum globales qui étaient utilisées pendant la transaction. Veuillez consulter la Section 8.5.1, « Définir les options [main] » pour obtenir des informations sur la manière de modifier les options globales.config-repos
— options des référentiels yum individuels. Veuillez consulter la Section 8.5.2, « Définir les options [repository] » pour obtenir des informations sur la manière de modifier les options de référentiels individuels.saved_tx
— les données pouvant être utilisées par la commandeyum load-transaction
afin de répéter la transaction sur une autre machine (voir ci-dessous).
Pour affciher un type sélectionné d'informations supplémentaires, veuillez exécuter la commande suivante en tant qu'utilisateur
root
:
yum
history
addon-info
id information
8.4.3. Restaurer et répéter des transactions
Hormis le fait de permettre d'examiner l'historique des transactions, la commande
yum history
fournit un moyen de restaurer ou de répéter une transaction sélectionnée. Pour restaurer une transaction, veuillez saisir ce qui suit dans l'invite shell en tant qu'utilisateur root
:
yum
history
undo
id
Pour répéter une transaction en particulier, veuillez exécuter la commande suivante en tant qu'utilisateur
root
:
yum
history
redo
id
Les deux commandes acceptent également le mot-clé
last
pour annuler ou répéter la dernière transaction.
Remarquez que les commandes
yum history undo
et yum history redo
restaurent ou répètent uniquement les étapes qui ont été effectuées pendant une transaction. Si la transaction a installé un nouveau paquet, la commande yum history undo
le désinstallera, et si la transaction a désinstallé un paquet, la commande l'installera à nouveau. Cette commande tente également de faire une mise à niveau inférieur de tous les paquets mis à jour vers leur version précédente si ces paquets plus anciens sont toujours disponibles.
Lors de la gestion de plusieurs systèmes identiques, yum vous permet également d'effectuer une transaction sur l'un d'entre eux, de stocker les détails de celle-ci dans un fichier, et après une période de tests, de répéter la même transaction sur les systèmes restants. Pour stocker les détails de la transaction dans une fichier, veuillez saisir ce qui suit dans l'invite shell en tant qu'utilisateur
root
:
yum
-q
history
addon-info
idsaved_tx
>file_name
Une fois ce fichier copié sur le système cible, vous pouvez répéter la transaction en utilisant la commande suivante en tant qu'utilisateur
root
:
yum
load-transaction
file_name
Vous pouvez configurer
load-transaction
de manière à ignorer les paquets manquants ou la version rpmdb. Pour obtenir davantage d'informations sur ces options de configuration, veuillez consulter la page man yum.conf
(5).
8.4.4. Lancer un nouvel historique des transactions
Yum stocke l'historique des transactions dans un fichier de base de données SQLite unique. Pour lancer un nouvel historique des transactions, veuillez exécuter la commande suivante en tant qu'utilisateur
root
:
yum
history
new
Cela créera un nouveau fichier de base de données vide dans le répertoire
/var/lib/yum/history/
. L'ancien historique des transactions sera conservé, mais il ne sera pas accessible tant qu'un fichier de base de données plus récent sera présent dans le répertoire.