Libvirt 版本降级过程记录 4.5.0 to 3.9.0

前言

搞 OpenStack 开发 Libvirt 版本会随着 OpenStack 版本切来切去的,记录一下 Libvirt 从 4.5 降级到 3.9.0 的过程。

步骤

直接 downgrade

[root@control01 ~]# yum downgrade 'libvirt*3.9.0*'
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.yun-idc.com
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
https://copr-be.cloud.fedoraproject.org/results/mcepl/vim8/epel-7-x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
To address this issue please refer to the below wiki article

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

Resolving Dependencies
--> Running transaction check
---> Package libvirt-libs.x86_64 0:4.5.0-10.el7_6.2 will be a downgrade
---> Package libvirt-libs.x86_64 0:4.5.0-10.el7_6.3 will be erased
--> Finished Dependency Resolution
Error: Package: libvirt-daemon-driver-storage-gluster-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-storage-rbd-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-lxc-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-storage-logical-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-network-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-nodedev-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-storage-disk-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-client-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-storage-mpath-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-qemu-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-nwfilter-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-interface-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-secret-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-storage-core-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-storage-iscsi-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-devel-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
Error: Package: libvirt-daemon-driver-storage-scsi-4.5.0-10.el7_6.3.x86_64 (@updates)
           Requires: libvirt-libs = 4.5.0-10.el7_6.3
           Removing: libvirt-libs-4.5.0-10.el7_6.3.x86_64 (@updates)
               libvirt-libs = 4.5.0-10.el7_6.3
           Downgraded By: libvirt-libs-4.5.0-10.el7_6.2.x86_64 (updates)
               libvirt-libs = 4.5.0-10.el7_6.2
           Available: libvirt-libs-4.5.0-10.el7.i686 (base)
               libvirt-libs = 4.5.0-10.el7
 You could try using --skip-broken to work around the problem
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
python2-requests-2.14.2-1.el7.noarch has missing requires of python2-urllib3 = ('0', '1.21.1', None)

报错,原因是上面这些高版本的包,在 yum repo 没有对应的低版本包。所以先把这个包强制卸载掉。

rpm -e --nodeps 
    libvirt-daemon-driver-storage-core 
    libvirt-libs 
    libvirt-daemon-driver-storage-disk 
    libvirt-daemon-driver-storage-gluster 
    libvirt-daemon-driver-storage-iscsi 
    libvirt-daemon-driver-storage-logical 
    libvirt-daemon-driver-storage-mpath 
    libvirt-daemon-driver-storage-rbd 
    libvirt-daemon-driver-storage-scsi

然后在 downgrade

[root@control01 ~]# yum downgrade 'libvirt*3.9.0*'
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
https://copr-be.cloud.fedoraproject.org/results/mcepl/vim8/epel-7-x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
To address this issue please refer to the below wiki article

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

No Match for available package: libvirt-libs-4.5.0-10.el7.i686
No Match for available package: libvirt-libs-4.5.0-10.el7.x86_64
Nothing to do

还是失败,原因是因为环境的 yum repo CentOS /7 已经没有 3.9.0 版本的包了,所以修改一下 CentOS repo 配置文件。

vim CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://vault.centos.org/7.5.1804/os/x86_64/

gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates.
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://vault.centos.org/7.5.1804/updates/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://vault.centos.org/7.5.1804/extras/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

然后在 downgrade 就应该可以成功了,如果还是不行,那么请继续挖坑吧。

[root@control01 yum.repos.d]# libvirtd --version
libvirtd (libvirt) 3.9.0

相关阅读:

原文地址:https://www.cnblogs.com/hzcya1995/p/13310267.html