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
# 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.
multumesc pentru informatii, well posted ! :)
ReplyDeleteAm citit intreg articolul dar trebuie sa recunosc ca zici ca-i greaca pentru mine! :)
ReplyDeleteImi pare rau ca nu m-am facut de inteles. Poate asta te ajuta:
Deletehttps://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Yum-Transaction_History.html
Ma bucur de acest articol si felicitari Levi ca ti-ai permis sa dai si raspunsuri!
ReplyDelete