Monthly Archive for Ağustos, 2011

Downgrading a package at RHEL 6

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 | 2011-08-10 21:21 | Downgrade | 2
12 | root
| 2011-08-07 12:46 | Update | 2
11 | root
| 2011-08-07 12:43 | Install | 2
10 | root
| 2011-08-07 12:32 | Install | 1
9 | root
| 2011-07-30 13:42 | Update | 6
8 | root
| 2011-07-28 12:41 | Install | 1
7 | root
| 2011-07-24 23:44 | I, U | 76
6 | root
| 2011-07-24 22:55 | Install | 1
5 | root
| 2011-06-07 15:12 | I, U | 24
4 | root
| 2011-06-07 15:04 | Install | 1
3 | root
| 2011-06-07 15:02 | Install | 1
1 | System | 2011-06-07 14:25 | Install | 1528
2 | root | 2011-06-07 12:28 | Update | 3
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 | 2011-08-10 21:31 | Update | 2
13 | root
| 2011-08-10 21:21 | Downgrade | 2
12 | root
| 2011-08-07 12:46 | Update | 2
11 | root
| 2011-08-07 12:43 | Install | 2
10 | root
| 2011-08-07 12:32 | Install | 1
9 | root
| 2011-07-30 13:42 | Update | 6
8 | root
| 2011-07-28 12:41 | Install | 1
7 | root
| 2011-07-24 23:44 | I, U | 76
6 | root
| 2011-07-24 22:55 | Install | 1
5 | root
| 2011-06-07 15:12 | I, U | 24
4 | root
| 2011-06-07 15:04 | Install | 1
3 | root
| 2011-06-07 15:02 | Install | 1
1 | System | 2011-06-07 14:25 | Install | 1528
2 | root | 2011-06-07 12:28 | Update | 3

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