Deși folosesc din august 2011 CentOS 6, de abia acuma am descoperit ce (mai) știe YUM. Funcția
yum history este un lucru pe care eu de mult îmi doream de la 'câinele galben'.
Versiunea nouă care vine cu CentOS 6 (cu RHEL 6, cu Fedora 12, etc...), pe lângă altele, are funcția de a reveni la o stare de înainte a sistemului de operare.
Ceva asemănător am folosit înainte cu CentOS 5 cu așa numitul transaction flags: tsflags=repackage în yum.conf. Pe lângă asta, trebuia setat și %_repackage_all_erasures 1 în /etc/rpm/macros, apoi cu comanda rpm -Uhv --rollback
'dată' se putea pune sistemul într-o stare anterioară. Bineînțeles într-o stare, în care setările de mai sus erau făcute deja.
Vestea bună este că CentOS 6 vine nativ cu versiunea mai nouă a programului
yum și implicit cu funcții noi.
Toate instalările, update-urile, dezinstalările se pot vizualiza:
# yum history
Loaded plugins: fastestmirror, priorities
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
82 | System <unset> | 2012-07-11 09:25 | I, U | 136 EE
81 | System <unset> | 2012-07-03 12:01 | Update | 1
80 | System <unset> | 2012-07-03 12:00 | Update | 1 EE
79 | System <unset> | 2012-07-02 09:10 | Update | 1
78 | System <unset> | 2012-06-27 12:07 | I, U | 13
77 | System <unset> | 2012-06-27 09:17 | Update | 10
76 | System <unset> | 2012-06-14 09:28 | Update | 2
75 | System <unset> | 2012-06-13 09:12 | Update | 6
74 | System <unset> | 2012-06-11 17:56 | Install | 2
73 | System <unset> | 2012-06-08 09:38 | Update | 3
72 | System <unset> | 2012-06-05 15:51 | Update | 1 EE
71 | System <unset> | 2012-05-30 18:36 | Update | 2
70 | System <unset> | 2012-05-29 08:49 | I, U | 3
69 | System <unset> | 2012-05-25 17:41 | Update | 1 EE
68 | System <unset> | 2012-05-25 16:53 | Install | 9
67 | System <unset> | 2012-05-24 10:08 | Update | 2
66 | System <unset> | 2012-05-22 12:32 | Update | 1 EE
65 | System <unset> | 2012-05-22 12:12 | Update | 1 EE
64 | System <unset> | 2012-05-22 12:05 | Update | 1
63 | System <unset> | 2012-05-17 11:42 | Update | 1
history list
Informații suplimentare pentru careva modificare cu opțiunea
info:
# yum history info 81
Loaded plugins: fastestmirror, priorities
Transaction ID : 81
Begin time : Tue Jul 3 12:01:57 2012
Begin rpmdb : 523:ff17c8b87bea4edf9e8d878dcb46b463d865c80e
End time : 12:02:04 2012 (7 seconds)
End rpmdb : 523:6de95ce5d3deb90f31ede91c2aded43b1095eb54
User : System <unset>
Return-Code : Success
Command Line : update ./dovecot-2.1.8-1.el6.i686.rpm --nogpgcheck
Transaction performed with:
Updated rpm-4.8.0-19.el6_2.1.i686 @updates
Updated yum-3.2.29-22.el6.centos.2.noarch @updates
Installed yum-metadata-parser-1.1.2-16.el6.i686 @base
Loading mirror speeds from cached hostfile
* base: mirrors.ch-center.com
* epel: ftp.astral.ro
* extras: ftp.ines.lug.ro
* rpmforge: ftp.lug.ro
* rpmforge-extras: ftp.lug.ro
* updates: ftp.ines.lug.ro
329 packages excluded due to repository priority protections
Updated yum-plugin-fastestmirror-1.1.30-10.el6.noarch ?
Packages Altered:
Updated dovecot-1:2.1.7-2_132.el6.i686 @/dovecot-2.1.7-2_132.el6.i686
Update 1:2.1.8-1.el6.i686 @/dovecot-2.1.8-1.el6.i686
history info
Cu opțiunea
summary 'packagename', primim informații despre tranzacțiile în care acel pachet a fost implicat:
# yum history summary kernel-headers
Loaded plugins: fastestmirror, priorities
Login user | Time | Action(s) | Altered
-------------------------------------------------------------------------------
System <unset> | Last day | I, U | 136
System <unset> | Last 3 months | Update | 14
System <unset> | Last 6 months | I, O, U | 39
history summary
package-list 'packagename' informații despre ce s-a întâmplat cu respectivul pachet:
# yum history package-list kernel-headers
Loaded plugins: fastestmirror, priorities
ID | Action(s) | Package
-------------------------------------------------------------------------------
82 | Updated | kernel-headers-2.6.32-220.23.1.el6.i686 EE
82 | Update | 2.6.32-279.el6.i686 EE
77 | Updated | kernel-headers-2.6.32-220.17.1.el6.i686
77 | Update | 2.6.32-220.23.1.el6.i686
63 | Updated | kernel-headers-2.6.32-220.13.1.el6.i686
63 | Update | 2.6.32-220.17.1.el6.i686
45 | Updated | kernel-headers-2.6.32-220.7.1.el6.i686
45 | Update | 2.6.32-220.13.1.el6.i686
42 | Updated | kernel-headers-2.6.32-220.4.1.el6.i686
42 | Update | 2.6.32-220.7.1.el6.i686
2 | Dep-Install | kernel-headers-2.6.32-220.4.1.el6.i686
history package-list
undo anulează tranzacția dată. Aici, conform documentației, se poate întâmpla că pachetul de versiune mai veche nu mai există nicăieri și atunci operația va eșua. Acest lucru nu se putea întâmpla cu CentOS 5: cum spuneam mai sus tsflags=repackage, adică orice pachet dezinstalat este arhivat local, și dacă este suficient spațiu se poate reveni la orice mai veche stare a sistemului de operare fără bătaie de cap, fără teama că acea versiune oare mai există undeva pe careva mirror.
redo execută din nou exact aceeași tranzacție specificată. Nu este vorba de reinstalare, pur și simplu se execută din nou operațiile din acea tranzacție.
new creează o nouă bază de date cu istoria tranzacțiilor.