当前位置: 首页 > news >正文

CentOS9源码编译libvirtd工具

卸载原有版本libvirt
[root@centos9 ~]# yum remove libvirt
Centos9配置网络源
[root@centos9 ~]# dnf config-manager --set-enabled crb
[root@centos9 ~]# dnf install epel-release epel-next-release
安装依赖包
[root@centos9 ~]# yum install -y libtirpc-devel libxml2-devel glib2-devel python3-docutils rpcgen gnutls-devel libpciaccess-devel yajl-devel device-mapper-devel meson
[root@centos9 ~]# meson configure --includedir /usr/include/tirpc/rpc/
libtirpc的rpc.h在/usr/include/tirpc/rpc/rpc.h,必须要手动告诉meson其目录位置,不然后面ninja -C build的时候会报错:rpc/rpc.h:没有那个文件或目录。

重新下载源码、编译安装
[root@centos9 ~]# wget http://libvirt.org/sources/ libvirt-9.0.0.tar.xz
[root@centos9 ~]# tar -xvf libvirt-9.0.0.tar.xz
[root@centos9 ~]# cd libvirt-9.0.0
[root@centos9 libvirt-9.0.0]# mkdir build && cd build
[root@centos9 build]# meson build
• # build & install libvirt to your home directory
• $ meson build --prefix=$HOME/usr

[root@centos9 build]# ninja -C build
[root@centos9 build]# ninja -C build install
然后查看一下版本是不是更新了
[root@centos9 ~]# libvirtd --version
libvirtd (libvirt) 9.0.0
[root@centos9 ~]# virsh --version
9.0.0
安装完成检查。
[root@centos9 ~]# cd libvirt-9.0.0/build/src/
[root@centos9 src]# systemctl status libvirtd
[root@centos9 src]# cp *.service /etc/systemd/system/
[root@centos9 src]# cp *socket /etc/systemd/system/
[root@centos9 src]# systemctl daemon-reload
[root@centos9 src]# systemctl restart libvirtd
[root@centos9 src]# systemctl enable libvirtd
[root@centos9 src]# systemctl status libvirtd
运行virsh命令查看机器上的虚拟机列表,提示未能连接到hypervisor
[root@localhost ~]# virsh list --all
error: failed to connect to the hypervisor
error: Failed to connect socket to ‘/usr/local/var/run/libvirt/libvirt-sock’: No such file or directory
出现这一情况的原因可能是没有开启libvirtd服务,用下面的命令查看是否开启
[root@localhost ~]# ps -le | grep libvirtd
显示libvirtd服务并没有开启,所以手动开启一下
[root@localhost ~]# libvirtd -d
现在再看一下,libvirtd服务已经启动了
[root@localhost ~]# ps -le | grep libvirtd
1 S 0 7171 1 23 80 0 - 143264 poll_s ? 00:00:00 libvirtd
验证virsh命令此时就已经可用了
[root@localhost ~]# virsh list --all

编译后没有 vir-install 命令
yum install virt-install virt-manager virt-viewer virt-top
systemd 无法启动
libvirtd.service 存在于 /usr/lib/systemd/system/ 文件夹下,而在 /etc/systemd/system/ 文件夹下有该文件的软连接,表明这是自动启动的。
尝试启动该服务时会报错,因为其中指定环境变量有问题,其中的大部分内容不需要改动,就是下面的文件的路径需要改,因为手动编译安装的 libvirt 安装路径在 /usr/local/sbin/libvirtd 或是 /usr/sbin/libvirtd ,修改以下两处:
[Service]

EnvironmentFile=/etc/sysconfig/libvirtd
ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS

需根据您系统中实际位置查找到对应位置,如果按照本文建议流程则路径同上,否则需自行查找,之后再次尝试启动即可,有可能需要重新加载一下服务。
systemctl daemon-reload
systemctl reload libvirtd
systemctl start libvirtd
即可启动成功。
virt-manager 启动提示 virt qemu-sock no such file or directory
检查后应该是 virtqemud 服务没起来导致的,编译安装默认生成的服务路径在 /usr/local/* 下,而我们指定了安装在默认位置 /usr ,参考 systemd 无法启动的解决方法即可解决该问题。
首先看一下 /usr/sbin/virtqemud 这个文件是存在的,下面继续操作,首先使能该服务。
$ systemctl enable virtqemud
创建了改服务的软连接,宣告自启,此时服务配置有问题,直接修改该软连接指定的文件
vim /usr/local/lib/systemd/system/virtqemud.service
#类比 libvirtd 的修改这两行,指定正确服务位置
[Service]

EnvironmentFile=-/etc/sysconfig/virtqemud
ExecStart=/usr/sbin/virtqemud $VIRTQEMUD_ARGS
之后重新加载服务,再启动
systemctl daemon-reload
systemctl reload virtqemud
systemctl start virtqemud
不出意外的话就能启动了
报错1:
ERROR internal error: process exited while connecting to monitor: Cannot set up guest memory ‘pc.ram’: Cannot allocate memory
解决办法:
#vim /etc/libvirt/qemu.conf
user = “root”    # 该项去星号
group = “root”    # 该项去星号
#这个问题是你的虚拟机的内存有点小,虚拟机的内存小的同时还再来带一台机器,肯定带不起来所以会报错。
#刚开始我设置的内存是24G(出错),后来设置成16G(出错),后来设置成10G(也出错了),后来设置成2G能起来了
#后来我把VMware的内存调到32G后就能正常的创建4G内存的虚机了
报错2:
错误:将插槽连接到 ‘/var/run/libvirt/libvirt-sock’ 失败: 没有那个文件或目录
解决办法:
systemctl status libvirtd 查看该服务状态
systemctl start libvirtd 启动该服务
systemctl enable libvirtd 开机自启动

报错3:
错误:将插槽连接到 ‘/var/run/libvirt/virtqemud-sock’ 失败: 没有那个文件或目录
[root@centos9 ~]# find / -name ‘virtqemud-sock’
/var/local/run/libvirt/virtqemud-sock
需要创建一个软连接
[root@centos9 ~]# ln -s /var/local/run/libvirt/virtqemud-sock /var/run/libvirt/virtqemud-sock
该报错就算创建软连接,只在当前会话有效,重启后libvirtd服务也是dead状态,软连接也不存在了,该问题还未查找到原因。

相关文章:

CentOS9源码编译libvirtd工具

卸载原有版本libvirt [rootcentos9 ~]# yum remove libvirt Centos9配置网络源 [rootcentos9 ~]# dnf config-manager --set-enabled crb [rootcentos9 ~]# dnf install epel-release epel-next-release 安装依赖包 [rootcentos9 ~]# yum install -y libtirpc-devel libxml2-de…...

搭建内网穿透

文章目录摘要npsfrp服务提供商摘要 内网穿透是一种方便的技术,可以让用户随时随地访问内网设备。有两种方式可以使用内网穿透:自己搭建,使用nps/frps软件;购买服务,快速享受内网穿透带来的便利。 nps 内网穿透。参考…...

vue3组件库项目学习笔记(八):Git 使用总结

目前组件库的开发已经接近尾声,因为这次是使用 git 进行协作的开发模式,在团队协作的时候遇到很多的问题,开发过程中发现小伙伴们对于 git 的使用还不是很熟练,这里就简单总结一下常用的 git 的操作,大致有&#xff1a…...

ISO7320FCQDRQ1数字隔离器LMG1025QDEETQ1半桥GaN驱动器

1、数字隔离器 DGTL ISO 3000VRMS 2CH 8SOIC型号:ISO7320FCQDRQ1批次:新技术:容性耦合类型:通用隔离式电源:无通道数:2输入 - 侧 1/侧 2:2/0通道类型:单向电压 - 隔离:30…...

openmmlab 语义分割算法基础

本文是openmmlab AI实战营的第六次课程的笔记,以下是我比较关注的部分。简要介绍语义分割:如下图,左边原图,右边语义分割图,对每个像数进行分类应用语义分割在个各种场景下都非常重要,特别是在自动驾驶和医…...

2023年深圳/东莞/惠州CPDA数据分析师认证报名入口

CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证,它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者,具有广泛的社会认知度和权威性。 无论是地方政府引进人才、公务员报考、各大企业选聘人才,还是招投标加…...

RabbitMQ-客户端源码之AMQChannel

AMQChannel是一个抽象类,是ChannelN的父类。其中包含唯一的抽象方法: /*** Protected API - called by nextCommand to check possibly handle an incoming Command before it is returned to the caller of nextCommand. If this method* returns true…...

注意力机制(SE,ECA,CBAM) Pytorch代码

注意力机制1 SENet2 ECANet3 CBAM3.1 通道注意力3.2 空间注意力3.3 CBAM4 展示网络层具体信息1 SENet SE注意力机制(Squeeze-and-Excitation Networks):是一种通道类型的注意力机制,就是在通道维度上增加注意力机制,主要内容是是…...

Vue2笔记03 脚手架(项目结构),常用属性配置,ToDoList(本地存储,组件通信)

Vue脚手架 vue-cli 向下兼容可以选择较高版本 初始化 全局安装脚手架 npm install -g vue/cli 创建项目:切换到项目所在目录 vue create xxx 按照指引选择vue版本 创建成功 根据指引依次输入上面指令即可运行项目 也可使用vue ui在界面上完成创建&…...

Java程序的执行顺序、简述对线程池的理解

点个关注,必回关 文章目录一、Java程序是如何执行的二、合理利用线程池能够带来三个好处一、Java程序是如何执行的 我们日常的工作中都使用开发工具(IntelliJ IDEA 或 Eclipse 等)可以很方便的调试程序,或者是通 过打包工具把项目…...

【前言】嵌入式系统简介

随手拍拍💁‍♂️📷 日期: 2022.12.01 地点: 杭州 介绍: 2022.11.30下午两点时,杭州下了一场特别大的雪。隔天的12月路过食堂时,边上的井盖上发现了这个小雪人。此时边上的雪已经融化殆尽,只有这个雪人依旧维持着原状⛄…...

React设计原理—1框架原理

阅读前须知 本文是笔者学习卡颂的《React设计原理》的读书笔记,对书中有价值内容以Q&A方式进行呈现,同时结合了自己的理解🤔阅读时推荐先看问题,想想自己的答案,再和答案比对一下本文属于前端框架科普,…...

(C00034)基于Springboot+html前后端分离技术的宿舍管理系统-有文档

基于Springboothtml技术的宿舍管理系统-有文档项目简介项目获取开发环境项目技术运行截图项目简介 基于Springboothtml的前后端分离技术的宿舍管理系统项目为了方便对学生宿舍进行管理而设计,分为后勤、宿管、学生三种用户,后勤对整体宿舍进行管理、宿管…...

Flink面试题

一 基础篇Flink的执行图有哪几种?分别有什么作用Flink中的执行图一般是可以分为四类,按照生成顺序分别为:StreamGraph-> JobGraph-> ExecutionGraph->物理执行图。1)StreamGraph顾名思义,这里代表的是我们编写…...

Python学习笔记

前言:又从仓库翻出来了一些以前总结的文档,以下内容是我初学Python时网上找的或是图书馆借书抄写的笔记,现在再看有点零散不成体系,但是也还是纪念一下子吧。 Python学习笔记 对于初学编程的人来说,Python可以缩短编…...

最适合入门的100个深度学习实战项目

🚨注意🚨:最近经粉丝反馈,发现有些订阅者将此专栏内容进行二次售卖,特在此声明,本专栏内容仅供学习,不得以任何方式进行售卖,未经作者许可不得对本专栏内容行使发表权、署名权、修改…...

AssertionError: 618 columns passed, passed data had 508 columns【已解决】

问题描述 程序中断,报错如下AssertionError: 618 columns passed, passed data had 508 columns Exception has occurred: ValueError 618 columns passed, passed data had 508 columns AssertionError: 618 columns passed, passed data had 508 columnsThe abo…...

166_技巧_Power BI 窗口函数处理连续发生业务问题

166_技巧_Power BI 窗口函数处理连续发生业务问题 一、背景 在生产经营的数据监控中,会有一类指标需要监控是否连续发生,从而根据其在设定区间中的连续频次来评价业务。 例如: 员工连续迟到天数。销售金额连续上升或者下降。用户连续登陆…...

电子科技大学人工智能期末复习笔记(五):机器学习

目录 前言 监督学习 vs 无监督学习 回归 vs 分类 Regression vs Classification 训练集 vs 测试集 vs 验证集 泛化和过拟合 Generalization & Overfitting 线性分类器 Linear Classifiers 激活函数 - 概率决策 ⚠线性回归 决策树 Decision Trees 决策树构建递归…...

使用DDD指导业务设计的总结思考

领域驱动设计(DDD) 是 Eric Evans 提出的一种软件设计方法和思想,主要解决业务系统的设计和建模。DDD 有大量难以理解的概念,尤其是翻译的原因,某些词汇非常生涩,例如:模型、限界上下文、聚合、…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

python/java环境配置

环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...

k8s从入门到放弃之Pod的容器探针检测

k8s从入门到放弃之Pod的容器探针检测 在Kubernetes(简称K8s)中,容器探测是指kubelet对容器执行定期诊断的过程,以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...

C#最佳实践:为何优先使用as或is而非强制转换

C#最佳实践:为何优先使用as或is而非强制转换 在 C# 的编程世界里,类型转换是我们经常会遇到的操作。就像在现实生活中,我们可能需要把不同形状的物品重新整理归类一样,在代码里,我们也常常需要将一个数据类型转换为另…...

触发DMA传输错误中断问题排查

在STM32项目中,集成BLE模块后触发DMA传输错误中断(DMA2_Stream1_IRQHandler进入错误流程),但单独运行BLE模块时正常,表明问题可能源于原有线程与BLE模块的交互冲突。以下是逐步排查与解决方案: 一、问题根源…...

c++算法学习3——深度优先搜索

一、深度优先搜索的核心概念 DFS算法是一种通过递归或栈实现的"一条路走到底"的搜索策略,其核心思想是: 深度优先:从起点出发,选择一个方向探索到底,直到无路可走 回溯机制:遇到死路时返回最近…...

如何优雅地绕过限制调用海外AI-API?反向代理与API中转技术详解​

阅读时长​​ | 8分钟 ​​适用读者​​ | 需要跨境调用OpenAI等AI服务的开发者/企业 ​​一、问题背景:为什么需要代理?​​ 最近在技术社区看到这样的求助: "公司服务器在国内,但业务需要调用OpenAI接口,直接访…...

Razor编程中@Helper的用法大全

文章目录 第一章:Helper基础概念1.1 Helper的定义与作用1.2 Helper的基本语法结构1.3 Helper与HtmlHelper的区别 第二章:基础Helper用法2.1 无参数Helper2.2 带简单参数的Helper2.3 带默认值的参数2.4 使用模型作为参数 第三章:高级Helper用法…...