Rollback dependencies

General support questions
Post Reply
staticza
Posts: 3
Joined: 2019/07/13 17:55:48

Rollback dependencies

Post by staticza » 2019/07/13 18:37:05

Hey everyone,

Long story short, we need to rollback our libvirt version.

I tried rolling back just with

Code: Select all

yum downgrade libvirt
Which gives me a lot of errors regarding dependencies

Code: Select all

Error: Package: libvirt-4.5.0-10.el7_6.7.x86_64 (updates)
           Requires: libvirt-daemon-driver-secret = 4.5.0-10.el7_6.7
           Installed: libvirt-daemon-driver-secret-4.5.0-10.el7_6.9.x86_64 (@updates)
               libvirt-daemon-driver-secret = 4.5.0-10.el7_6.9
           Available: libvirt-daemon-driver-secret-4.5.0-10.el7.x86_64 (base)
               libvirt-daemon-driver-secret = 4.5.0-10.el7
I then added the older repo (Centos 7.5)

Code: Select all

[centos7.5]
name=CentOS-Legacy
baseurl=http://vault.centos.org/7.5.1804/os/Source
enabled=1
This however did not solve the issue.

I then downloaded all the packages, and tried a rollback like that:

Code: Select all

[size=85]yum downgrade libvirt-3.9.0-14.el7.x86_64.rpm libvirt-admin-3.9.0-14.el7.x86_64.rpm libvirt-cim-0.6.3-19.el7.x86_64.rpm libvirt-client-3.9.0-14.el7.x86_64.rpm libvirt-daemon-3.9.0-14.el7.x86_64.rpm libvirt-daemon-config-network-3.9.0-14.el7.x86_64.rpm libvirt-daemon-config-nwfilter-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-interface-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-lxc-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-network-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-nodedev-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-nwfilter-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-qemu-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-secret-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-storage-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-storage-core-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-storage-disk-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-storage-gluster-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-storage-iscsi-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-storage-logical-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-storage-mpath-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-storage-rbd-3.9.0-14.el7.x86_64.rpm libvirt-daemon-driver-storage-scsi-3.9.0-14.el7.x86_64.rpm libvirt-libs-3.9.0-14.el7.x86_64.rpm[/size]

Looks like it picks it up

Code: Select all

Examining libvirt-client-3.9.0-14.el7.x86_64.rpm: libvirt-client-3.9.0-14.el7.x86_64
Examining libvirt-daemon-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-3.9.0-14.el7.x86_64
Examining libvirt-daemon-config-network-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-config-network-3.9.0-14.el7.x86_64
Examining libvirt-daemon-config-nwfilter-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-config-nwfilter-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-interface-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-interface-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-lxc-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-lxc-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-network-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-network-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-nodedev-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-nodedev-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-nwfilter-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-nwfilter-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-qemu-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-qemu-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-secret-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-secret-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-storage-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-storage-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-storage-core-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-storage-core-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-storage-disk-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-storage-disk-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-storage-gluster-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-storage-gluster-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-storage-iscsi-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-storage-iscsi-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-storage-logical-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-storage-logical-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-storage-mpath-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-storage-mpath-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-storage-rbd-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-storage-rbd-3.9.0-14.el7.x86_64
Examining libvirt-daemon-driver-storage-scsi-3.9.0-14.el7.x86_64.rpm: libvirt-daemon-driver-storage-scsi-3.9.0-14.el7.x86_64
Examining libvirt-libs-3.9.0-14.el7.x86_64.rpm: libvirt-libs-3.9.0-14.el7.x86_64
Resolving Dependencies
--> Running transaction check
---> Package libvirt.x86_64 0:3.9.0-14.el7 will be a downgrade
---> Package libvirt.x86_64 0:4.5.0-10.el7_6.9 will be erased
---> Package libvirt-client.x86_64 0:3.9.0-14.el7 will be a downgrade
---> Package libvirt-client.x86_64 0:4.5.0-10.el7_6.9 will be erased
---> Package libvirt-daemon.x86_64 0:3.9.0-14.el7 will be a downgrade
---> Package libvirt-daemon.x86_64 0:4.5.0-10.el7_6.9 will be erased
However they all have the same error:

Code: Select all

Error: Package: libvirt-daemon-kvm-4.5.0-10.el7_6.9.x86_64 (@updates)
           Requires: libvirt-daemon-driver-interface = 4.5.0-10.el7_6.9
           Removing: libvirt-daemon-driver-interface-4.5.0-10.el7_6.9.x86_64 (@updates)
               libvirt-daemon-driver-interface = 4.5.0-10.el7_6.9
           Downgraded By: libvirt-daemon-driver-interface-3.9.0-14.el7.x86_64 (/libvirt-daemon-driver-interface-3.9.0-14.el7.x86_64)
               libvirt-daemon-driver-interface = 3.9.0-14.el7
           Available: libvirt-daemon-driver-interface-4.5.0-10.el7.x86_64 (base)
               libvirt-daemon-driver-interface = 4.5.0-10.el7
ending it all with:

Code: Select all

You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
Is there a known way to rollback dependencies?

Any advise would be appreciated!

bonedome
Posts: 201
Joined: 2017/04/22 08:11:04

Re: Rollback dependencies

Post by bonedome » 2019/07/14 09:13:52

Hello
you could try

Code: Select all

yum history
find the one with the libvirt update and undo

Code: Select all

yum history undo xxx
Then update but exclude libvirt

Code: Select all

yum update -x libvirt*

User avatar
TrevorH
Site Admin
Posts: 33215
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: Rollback dependencies

Post by TrevorH » 2019/07/14 12:04:02

What version of libvirt packages do you have now, what version do you want and why do you want them?
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke

hunter86_bg
Posts: 2019
Joined: 2015/02/17 15:14:33
Location: Bulgaria
Contact:

Re: Rollback dependencies

Post by hunter86_bg » 2019/07/14 19:34:29

If you haven't installed/removed anything with yum just run:

Code: Select all

yum history undo last
Otherwise:

Code: Select all

yum history
yum history info <id-from-previous-command>
yum history undo <id-from-previous-command>

staticza
Posts: 3
Joined: 2019/07/13 17:55:48

Re: Rollback dependencies

Post by staticza » 2019/07/18 09:12:43

TrevorH wrote:
2019/07/14 12:04:02
What version of libvirt packages do you have now, what version do you want and why do you want them?
Hey,

Current Libvirt package version:

Code: Select all

libvirt-xy-4.5.0-10.el7_6.9.x86_64
What version I want:

Code: Select all

libvirt-xy-3.9.0-14.el7.x86_64
Why do I want it:

Our backup script is only compatible with 3.9 &<

bonedome wrote:
2019/07/14 09:13:52
Hello
you could try

Code: Select all

yum history
find the one with the libvirt update and undo

Code: Select all

yum history undo xxx
Then update but exclude libvirt

Code: Select all

yum update -x libvirt*
hunter86_bg wrote:
2019/07/14 19:34:29
If you haven't installed/removed anything with yum just run:

Code: Select all

yum history undo last
Otherwise:

Code: Select all

yum history
yum history info <id-from-previous-command>
yum history undo <id-from-previous-command>
Along with the libvirt update, came a kernel update.

From what i've read, it can cause issues doing a rollback from a minor v. update?

User avatar
TrevorH
Site Admin
Posts: 33215
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: Rollback dependencies

Post by TrevorH » 2019/07/18 13:54:48

So those are all part of 7.5 and are archived to vault.centos.org. You will need to enable the vault 7.5 repos using yum --enablerepo=C7.5.1804-{base,updates} ... on each command that you run to attempt to downgrade these packages. Now downgrade is not particularly intelligent and you need to specify every single package (or a glob covering them) that you want to downgrade at the same time, as part of the same command or it will fail with dependency problems. Start with

yum --enablerepo=C7.5.1804-{base,updates} downgrade libvirt\*

If you have yum-plugin-priorities installed and configured then you may also need to specify --noplugins.

That will probably blow up with dependency problems so now you have to look at the list it tells you about and pick the ones from that to add to that command (it will have done nothing if it spits out dependency problems). Repeat until it works. Once it has worked then you will need to add an exclude=libvirt* to your /etc/yum.repos.d/CentOS-Base.repo in both the [base] and [updates] sections.

The only other alternatives are - downgrade the whole lot to 7.5 - which from experience in a previous point release is not going to be any easier. Or get the backup software fixed to work properly! Looking at the changelog for 3.9 to 4.5, you are missing 219 lines from it and among those things fixed in the 219 lines are several CVEs which you will need to look at and evaluate for severity. Those are:
CVE-2019-10132
CVE-2018-12127, CVE-2018-12126, CVE-2018-12130

Personally I'd get the backup software fixed!
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke

staticza
Posts: 3
Joined: 2019/07/13 17:55:48

Re: Rollback dependencies

Post by staticza » 2019/07/18 15:11:51

Thanks Trevor, absolute legend.
Personally I'd get the backup software fixed!
I 100% agree, however in this case, its on "legacy infrastructure" which we're migrating away to a RHEL fork.

So it's more of a intermediate fix.

Once again, thanks for the help.

Post Reply