Let's say I have a server that's running fine, and I decide to do a 'sudo yum update' to get the latest updates. The output is as follows:
Code:
--> Running transaction check
---> Package feh.i686 0:1.16.1-1.el6.rf will be updated
---> Package feh.i686 0:2.0-1.el6.rf will be an update
---> Package libmemcached.i686 0:0.52-1.el6.remi will be updated
---> Package libmemcached.i686 0:0.53-1.el6.remi will be an update
---> Package libmemcached-devel.i686 0:0.52-1.el6.remi will be updated
---> Package libmemcached-devel.i686 0:0.53-1.el6.remi will be an update
---> Package mysql.i686 0:5.5.14-1.el6.remi will be updated
---> Package mysql.i686 0:5.5.17-1.el6.remi will be an update
---> Package mysql-devel.i686 0:5.5.14-1.el6.remi will be updated
---> Package mysql-devel.i686 0:5.5.17-1.el6.remi will be an update
---> Package mysql-libs.i686 0:5.5.14-1.el6.remi will be updated
---> Package mysql-libs.i686 0:5.5.17-1.el6.remi will be an update
---> Package mysql-server.i686 0:5.5.14-1.el6.remi will be updated
---> Package mysql-server.i686 0:5.5.17-1.el6.remi will be an update
---> Package php-pear.noarch 1:1.9.4-1.el6.remi will be updated
---> Package php-pear.noarch 1:1.9.4-3.el6.remi will be an update
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================================================
Updating:
feh i686 2.0-1.el6.rf rpmforge 169 k
libmemcached i686 0.53-1.el6.remi remi 163 k
libmemcached-devel i686 0.53-1.el6.remi remi 255 k
mysql i686 5.5.17-1.el6.remi remi 5.8 M
mysql-devel i686 5.5.17-1.el6.remi remi 152 k
mysql-libs i686 5.5.17-1.el6.remi remi 758 k
mysql-server i686 5.5.17-1.el6.remi remi 10 M
php-pear noarch 1:1.9.4-3.el6.remi remi 394 k
Now let's I apply the above changes, and say something stops working or I encounter problems, and I suspect it has something to do with these updates. What would be the best way for me to roll back the group of all of the above changes to their previous state - I know there's a 'yum downgrade' command, but would I have to note all of the above packages by hand, and do 'yum downgrade feh libmemcached libmemcached-devel mysql mysql-devel mysql-libs mysql-server php-pear', or is there a better way?
Now I have some specific questions about yum downgrade. I'd experiment with it but since I only have a new system that hasn't had the chance for many upgrades, I can't seem to test too much downgrading stuff myself, so I thought I'd ask some questions to people like you who may have had plenty of experience upgrading/downgrading and otherwise managing packages in their system.
Let's say a repository has versions A of a package, then releases version B. You install version B of the package for the first time on your system. Then the repository releases version C (which you do NOT upgrade to), then version D (which you DO upgrade to). Then again the repository releases version E (which you do NOT upgrade to), then version F (which you DO upgrade to). So the repository now has versions A, B, C, D, E, F, but you only ever had installed on your system versions B, D, F. Version F is currently on your system. If at this point you run 'yum downgrade', which of the following will you be offered as options for versions you can downgrade to:
- D (because it was the last version you had)
- E (because it was the last version the repository had)
- B and D (because they were all the lower versions you had)
- A, B, C, D and E (because they were all the lower versions the repository had)
- B, C, D and E (because they were all the lower versions the repository had after you first installed the package at version B)
If running a production server I'd be afraid to do yum updates without having a reliable and repeatable way to roll them back, either immediately or more likely a few days/weeks after when any problem is likely to make itself known. So I'd like to know the details about how it works.