---
title: （可选）升级libvirt
description: "由于openEuler操作系统中QEMU版本较高，一般没有升级需求，因此以下操作以CentOS 7.6操作系统为例。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/QEMU-KVM/kunpengkvm_03_0006.html
sourcePath: /source/zh/kunpengcpfs/ecosystemEnable/QEMU-KVM/kunpengkvm_03_0006.html
indexId: 8daf1f767f273c33545cdeed02974ab62b051edd9251b7ad8440804d2b72042971
---
# （可选）升级libvirt

由于openEuler操作系统中QEMU版本较高，一般没有升级需求，因此以下操作以CentOS 7.6操作系统为例。

- 如果对图形化界面没有诉求，能够使用命令行进行虚拟化相关操作，建议使用系统自带的libvirt-4.5.0。
- 由于libvirt-4.5.0代码存在bug，所以在使用virt-manager时会触发一些报错，例如：internal error: Socket 6378 can't be handled (max socket is 4095)，如果一定要用virt-manager操作，请参考如下章节编译安装libvirt-4.7.0或更高版本。
- 如果编译libvirt时出现失败问题，请参见“  编译libvirt 5.6.0概率性失败的解决方法(https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/troubleshooting/trouble/kunpengkvm_09_0013.html)
”解决。


#### 安装依赖包

本章节的操作需要外网可用或已配置本地源。


安装依赖包。
```
yum -y install yum-utils rpm-build
```


#### 编译安装

- Linux系统默认开启的SELinux安全机制会阻止Guest虚拟机的镜像加载，导致无法正常部署虚拟化场景业务。这是Linux OS本身的行为，鲲鹏BoostKit虚拟化使能套件并不对此提供的详细解决方案。如果客户想在自己的系统中使用SELinux，则需要自行寻找解决方法。
- 针对此限制，我们提供了快速的禁用SELinux的方法。鲲鹏BoostKit虚拟化使能套件中，提供的SELinux配置方法仅供参考，需用户自行评估并承担相应风险。
- 禁用SELinux可能会导致安全问题，如果客户最终的解决方案本身就没有规划启用SELinux，建议通过端到端的整体方案来弥补SELinux关闭带来的风险，且需自行承担安全风险。如果客户有SELinux的需求，建议根据实际的SELinux问题进行细粒度的规则配置，并保证整个系统的安全。


源码包的下载请参见操作系统和软件要求，本章以libvirt-5.6.0为例。该ARM版本暂不支持虚拟机热迁移功能（支持冷迁移），若有虚拟机热迁移需求，可根据openEuler中的patch包(https://gitcode.com/src-openeuler/libvirt/tree/openEuler-20.03-LTS/)进行补丁升级。

1. 安装src.rpm源码包。
  1 rpm -i libvirt-5.6.0-1.fc30.src.rpm

2. 生成RPM包。
  1 2 3 cd /root/rpmbuild/SPECS/ yum-builddep -y libvirt.spec rpmbuild -ba libvirt.spec

  官方提供的src.rpm包在编译时，有一定几率会失败，需多次尝试。

3. 安装RPM包。

```
cd /root/rpmbuild/RPMS/aarch64/
yum -y install *.rpm
```


4. 重启libvirtd服务。
  1 2 systemctl daemon-reload systemctl restart libvirtd

5. 关闭SELinux。
  1 setenforce 0
