With RHEL 6 it is now possible to downgrade (rollback / undo ) a package transaction. For that you use history argument of yum package. To better explain what it is all about here is a few examples:
First lets list what transactions we had since the beginning of the system.
yum history
Loaded plugins: presto, product-id, refresh-packagekit, rhnplugin, security, subscription-manager
Updating Red Hat repositories.
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
13 | root
12 | root
11 | root
10 | root
9 | root
8 | root
7 | root
6 | root
5 | root
4 | root
3 | root
1 | System
2 | root
history list
And lets make an upgrade of a package using “yum upgrade”
yum -y upgrade openldap-devel
Loaded plugins: presto, product-id, refresh-packagekit, rhnplugin, security, subscription-manager
Updating Red Hat repositories.
Setting up Upgrade Process
Resolving Dependencies
--> Running transaction check
---> Package openldap-devel.x86_64 0:2.4.23-15.el6 will be updated
---> Package openldap-devel.x86_64 0:2.4.23-15.el6_1.1 will be an update
--> Processing Dependency: openldap = 2.4.23-15.el6_1.1 for package: openldap-devel-2.4.23-15.el6_1.1.x86_64
--> Running transaction check
---> Package openldap.x86_64 0:2.4.23-15.el6 will be updated
---> Package openldap.x86_64 0:2.4.23-15.el6_1.1 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================
Package Arch Version Repository Size
==================================================================
Updating:
openldap-devel x86_64 2.4.23-15.el6_1.1 rhel-x86_64-server-6 1.1 M
Updating for dependencies:
openldap x86_64 2.4.23-15.el6_1.1 rhel-x86_64-server-6 254 k
Transaction Summary
===========================================================================
Upgrade 2 Package(s)
Total download size: 1.3 M
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 1.3 M
(1/2): openldap-2.4.23-15.el6_1.1.x86_64.rpm | 254 kB 00:00
(2/2): openldap-devel-2.4.23-15.el6_1.1.x86_64.rpm | 1.1 MB 00:01
-----------------------------------------------------------------------------
Total 507 kB/s | 1.3 MB 00:02
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : openldap-2.4.23-15.el6_1.1.x86_64 1/4
Updating : openldap-devel-2.4.23-15.el6_1.1.x86_64 2/4
Cleanup : openldap-devel-2.4.23-15.el6.x86_64 3/4
Cleanup : openldap-2.4.23-15.el6.x86_64 4/4
duration: 191(ms)
Installed products updated.
Updated:
openldap-devel.x86_64 0:2.4.23-15.el6_1.1
Dependency Updated:
openldap.x86_64 0:2.4.23-15.el6_1.1
Complete!
And another “yum history”
yum history
Loaded plugins: presto, product-id, refresh-packagekit, rhnplugin, security, subscription-manager
Updating Red Hat repositories.
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
14 | root
13 | root
12 | root
11 | root
10 | root
9 | root
8 | root
7 | root
6 | root
5 | root
4 | root
3 | root
1 | System
2 | root
As you can see we have a new yum transcation with an ID of 14. On that procedure we have updated openldap-devel and also openldap package is being updated. Lets see how openldap-devel package was upgraded
yum history packages-list openldap-devel
Loaded plugins: presto, product-id, refresh-packagekit, rhnplugin, security, subscription-manager
Updating Red Hat repositories.
ID | Action(s) | Package
-------------------------------------------------------------------------------
14 | Updated | openldap-devel-2.4.23-15.el6.x86_64
14 | Update | 2.4.23-15.el6_1.1.x86_64
13 | Downgrade | openldap-devel-2.4.23-15.el6.x86_64
13 | Downgraded | 2.4.23-15.el6_1.1.x86_64
12 | Updated | openldap-devel-2.4.23-15.el6.x86_64
12 | Update | 2.4.23-15.el6_1.1.x86_64
1 | Install | openldap-devel-2.4.23-15.el6.x86_64
As you can see transaction 14 (ignore transaction 13 for now becase i have done that redo procedure twice) updates opendevel package from 2.4.23-15.el6.x86_64 to 2.4.23-15.el6_1.1.x86_64
Now it is a good time to undo transaction 12
yum -y history undo 14
Loaded plugins: presto, product-id, refresh-packagekit, rhnplugin, security, subscription-manager
Updating Red Hat repositories.
Undoing transaction 14, from Wed Aug 10 21:31:26 2011
Updated openldap-2.4.23-15.el6.x86_64
Update 2.4.23-15.el6_1.1.x86_64
Updated openldap-devel-2.4.23-15.el6.x86_64
Update 2.4.23-15.el6_1.1.x86_64
Resolving Dependencies
--> Running transaction check
---> Package openldap.x86_64 0:2.4.23-15.el6 will be a downgrade
---> Package openldap.x86_64 0:2.4.23-15.el6_1.1 will be erased
---> Package openldap-devel.x86_64 0:2.4.23-15.el6 will be a downgrade
---> Package openldap-devel.x86_64 0:2.4.23-15.el6_1.1 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================
Package Arch Version Repository Size
============================================================================
Downgrading:
openldap x86_64 2.4.23-15.el6 rhel-x86_64-server-6 255 k
openldap-devel x86_64 2.4.23-15.el6 rhel-x86_64-server-6 1.1 M
Transaction Summary
======================================================
Downgrade 2 Package(s)
Total download size: 1.3 M
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 1.3 M
(1/2): openldap-2.4.23-15.el6.x86_64.rpm | 255 kB 00:00
(2/2): openldap-devel-2.4.23-15.el6.x86_64.rpm | 1.1 MB 00:01
-----------------------------------------------------------------------------------------
Total 510 kB/s | 1.3 MB 00:02
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : openldap-2.4.23-15.el6.x86_64 1/4
Installing : openldap-devel-2.4.23-15.el6.x86_64 2/4
Cleanup : openldap-devel-2.4.23-15.el6_1.1.x86_64 3/4
Cleanup : openldap-2.4.23-15.el6_1.1.x86_64 4/4
duration: 175(ms)
Installed products updated.
Removed:
openldap.x86_64 0:2.4.23-15.el6_1.1 openldap-devel.x86_64 0:2.4.23-15.el6_1.1
Installed:
openldap.x86_64 0:2.4.23-15.el6 openldap-devel.x86_64 0:2.4.23-15.el6
Complete!
and for the last time “yum history” with a transaction id
yum history 15
Loaded plugins: presto, product-id, refresh-packagekit, rhnplugin, security, subscription-manager
Updating Red Hat repositories.
Invalid history sub-command, use: list, info, summary, repeat, redo, undo, new, addon, addon-info, pkg, pkgs, pkg-list, pkgs-list, package, package-list, packages, packages-list.
[root@test6 ~]# yum history info 15
Loaded plugins: presto, product-id, refresh-packagekit, rhnplugin, security, subscription-manager
Updating Red Hat repositories.
Transaction ID : 15
Begin time : Wed Aug 10 21:37:18 2011
Begin rpmdb : 1539:7d3bcb0ebdd312eb55434d78d9938be3e3f37a9c
End time : 21:37:21 2011 (3 seconds)
End rpmdb : 1539:b9489fde73432614e4977ab0f09b02bf0840a57f
User : root
Return-Code : Success
Command Line : -y history undo 14
Transaction performed with:
Installed rpm-4.8.0-16.el6.x86_64
Installed subscription-manager-0.95.17-1.el6_1.x86_64
Installed yum-3.2.29-17.el6.noarch
Installed yum-metadata-parser-1.1.2-16.el6.x86_64
Installed yum-presto-0.6.2-1.el6.noarch
Packages Altered:
Downgrade openldap-2.4.23-15.el6.x86_64
Downgraded 2.4.23-15.el6_1.1.x86_64
Downgrade openldap-devel-2.4.23-15.el6.x86_64
Downgraded 2.4.23-15.el6_1.1.x86_64
history info
As you can see we have undo a transaction.
PS: This document was inspired from http://people.redhat.com/rprice/yum_history.txt

Son Yorumlar