If you upgrade RPMs with yum upgrade
and then later wish you hadn’t done,
then it is pretty simple to downgrade them using yum downgrade
.
Consider our example below, upgrading systemd
:
[vagrant@localhost ~]$ sudo yum upgrade systemd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ukfast.co.uk
* extras: repo.bigstepcloud.com
* updates: www.mirrorservice.org
Resolving Dependencies
--> Running transaction check
---> Package systemd.x86_64 0:219-19.el7_2.7 will be updated
--> Processing Dependency: systemd = 219-19.el7_2.7 for package: systemd-sysv-219-19.el7_2.7.x86_64
---> Package systemd.x86_64 0:219-19.el7_2.12 will be an update
--> Processing Dependency: systemd-libs = 219-19.el7_2.12 for package: systemd-219-19.el7_2.12.x86_64
--> Running transaction check
---> Package systemd-libs.x86_64 0:219-19.el7_2.7 will be updated
--> Processing Dependency: systemd-libs = 219-19.el7_2.7 for package: libgudev1-219-19.el7_2.7.x86_64
---> Package systemd-libs.x86_64 0:219-19.el7_2.12 will be an update
---> Package systemd-sysv.x86_64 0:219-19.el7_2.7 will be updated
---> Package systemd-sysv.x86_64 0:219-19.el7_2.12 will be an update
--> Running transaction check
---> Package libgudev1.x86_64 0:219-19.el7_2.7 will be updated
---> Package libgudev1.x86_64 0:219-19.el7_2.12 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================================================
Updating:
systemd x86_64 219-19.el7_2.12 updates 5.1 M
Updating for dependencies:
libgudev1 x86_64 219-19.el7_2.12 updates 66 k
systemd-libs x86_64 219-19.el7_2.12 updates 358 k
systemd-sysv x86_64 219-19.el7_2.12 updates 53 k
Transaction Summary
==================================================================================================================================================================================
Upgrade 1 Package (+3 Dependent packages)
Total download size: 5.6 M
Is this ok [y/d/N]: y
Downloading packages:
updates/7/x86_64/prestodelta | 698 kB 00:00:03
warning: /var/cache/yum/x86_64/7/updates/packages/libgudev1-219-19.el7_2.12.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for libgudev1-219-19.el7_2.12.x86_64.rpm is not installed
(1/4): libgudev1-219-19.el7_2.12.x86_64.rpm | 66 kB 00:00:00
(2/4): systemd-sysv-219-19.el7_2.12.x86_64.rpm | 53 kB 00:00:00
(3/4): systemd-libs-219-19.el7_2.12.x86_64.rpm | 358 kB 00:00:04
(4/4): systemd-219-19.el7_2.12.x86_64.rpm | 5.1 MB 00:00:04
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 1.1 MB/s | 5.6 MB 00:00:04
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
Package : centos-release-7-2.1511.el7.centos.2.10.x86_64 (@anaconda)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : systemd-libs-219-19.el7_2.12.x86_64 1/8
Updating : systemd-219-19.el7_2.12.x86_64 2/8
Updating : systemd-sysv-219-19.el7_2.12.x86_64 3/8
Updating : libgudev1-219-19.el7_2.12.x86_64 4/8
Cleanup : systemd-sysv-219-19.el7_2.7.x86_64 5/8
Cleanup : systemd-219-19.el7_2.7.x86_64 6/8
Cleanup : libgudev1-219-19.el7_2.7.x86_64 7/8
Cleanup : systemd-libs-219-19.el7_2.7.x86_64 8/8
Verifying : systemd-sysv-219-19.el7_2.12.x86_64 1/8
Verifying : systemd-libs-219-19.el7_2.12.x86_64 2/8
Verifying : systemd-219-19.el7_2.12.x86_64 3/8
Verifying : libgudev1-219-19.el7_2.12.x86_64 4/8
Verifying : systemd-libs-219-19.el7_2.7.x86_64 5/8
Verifying : systemd-sysv-219-19.el7_2.7.x86_64 6/8
Verifying : systemd-219-19.el7_2.7.x86_64 7/8
Verifying : libgudev1-219-19.el7_2.7.x86_64 8/8
Updated:
systemd.x86_64 0:219-19.el7_2.12
Dependency Updated:
libgudev1.x86_64 0:219-19.el7_2.12 systemd-libs.x86_64 0:219-19.el7_2.12 systemd-sysv.x86_64 0:219-19.el7_2.12
Complete!
[vagrant@localhost ~]$
So at this stage our upgrade was completed successfully, however, lets assume we found an issue with the new version of the packages and would like to downgrade them.
[vagrant@localhost ~]$ sudo yum downgrade systemd libgudev1 systemd-libs systemd-sysv
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ukfast.co.uk
* extras: repo.bigstepcloud.com
* updates: www.mirrorservice.org
Resolving Dependencies
--> Running transaction check
---> Package libgudev1.x86_64 0:219-19.el7_2.11 will be a downgrade
---> Package libgudev1.x86_64 0:219-19.el7_2.12 will be erased
---> Package systemd.x86_64 0:219-19.el7_2.11 will be a downgrade
---> Package systemd.x86_64 0:219-19.el7_2.12 will be erased
---> Package systemd-libs.x86_64 0:219-19.el7_2.11 will be a downgrade
---> Package systemd-libs.x86_64 0:219-19.el7_2.12 will be erased
---> Package systemd-sysv.x86_64 0:219-19.el7_2.11 will be a downgrade
---> Package systemd-sysv.x86_64 0:219-19.el7_2.12 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================================================
Downgrading:
libgudev1 x86_64 219-19.el7_2.11 updates 66 k
systemd x86_64 219-19.el7_2.11 updates 5.1 M
systemd-libs x86_64 219-19.el7_2.11 updates 358 k
systemd-sysv x86_64 219-19.el7_2.11 updates 53 k
Transaction Summary
==================================================================================================================================================================================
Downgrade 4 Packages
Total download size: 5.6 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): systemd-sysv-219-19.el7_2.11.x86_64.rpm | 53 kB 00:00:00
(2/4): libgudev1-219-19.el7_2.11.x86_64.rpm | 66 kB 00:00:00
(3/4): systemd-libs-219-19.el7_2.11.x86_64.rpm | 358 kB 00:00:00
(4/4): systemd-219-19.el7_2.11.x86_64.rpm | 5.1 MB 00:00:02
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 2.2 MB/s | 5.6 MB 00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : systemd-libs-219-19.el7_2.11.x86_64 1/8
Installing : systemd-219-19.el7_2.11.x86_64 2/8
Installing : systemd-sysv-219-19.el7_2.11.x86_64 3/8
Installing : libgudev1-219-19.el7_2.11.x86_64 4/8
Cleanup : systemd-sysv-219-19.el7_2.12.x86_64 5/8
Cleanup : systemd-219-19.el7_2.12.x86_64 6/8
Cleanup : libgudev1-219-19.el7_2.12.x86_64 7/8
Cleanup : systemd-libs-219-19.el7_2.12.x86_64 8/8
Verifying : systemd-219-19.el7_2.11.x86_64 1/8
Verifying : libgudev1-219-19.el7_2.11.x86_64 2/8
Verifying : systemd-libs-219-19.el7_2.11.x86_64 3/8
Verifying : systemd-sysv-219-19.el7_2.11.x86_64 4/8
Verifying : systemd-libs-219-19.el7_2.12.x86_64 5/8
Verifying : systemd-sysv-219-19.el7_2.12.x86_64 6/8
Verifying : systemd-219-19.el7_2.12.x86_64 7/8
Verifying : libgudev1-219-19.el7_2.12.x86_64 8/8
Removed:
libgudev1.x86_64 0:219-19.el7_2.12 systemd.x86_64 0:219-19.el7_2.12 systemd-libs.x86_64 0:219-19.el7_2.12 systemd-sysv.x86_64 0:219-19.el7_2.12
Installed:
libgudev1.x86_64 0:219-19.el7_2.11 systemd.x86_64 0:219-19.el7_2.11 systemd-libs.x86_64 0:219-19.el7_2.11 systemd-sysv.x86_64 0:219-19.el7_2.11
Complete!
[vagrant@localhost ~]$
As you can see, yum reinstated the previous version without any problems.