当前位置: 首页 > 工具软件 > c++-gtk-utils > 使用案例 >

Ubuntu16.04下编译spice-gtk

淳于星宇
2023-12-01

编译环境准备:
1)安装编译工具

sudo apt-get install autotools-dev devhelp doxygen pkg-config devscripts

编译安装spice-protocol

下载spice-protocol 0.12.12源代码
./configure
make
sudo make install
pkg-config –print-provides spice-protocol

安装编译spice所需要的第三方库

./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc

安装celt051
sudo apt-get install libogg-dev
wget -c http://downloads.us.xiph.org/releases/celt/celt-0.5.1.3.tar.gz
./configure
make
sudo make install

其中, asciidoc编译过程中产生问题,建议不要安装。
sudo apt-get install libglib2.0-dev libpixman-1-dev libssl-dev libjpeg-dev libgstreamer1.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libgstreamer-plugins-base1.0-dev libcacard-dev
sudo apt-get install dh-autoreconf libpixman-1-dev libxrandr-dev  libasound2-dev libssl-dev libxfixes-dev libsasl2-dev libjpeg-dev  libxinerama-dev python-pyparsing libglib2.0-dev
sudo apt-get install liblz4-dev
sudo apt-get install libopus-dev
sudo apt-get install asciidoc(建议不要安装)
sudo apt-get install libusbredirhost-dev libusrredirparser-dev usbredirserver

编译qemu
修改configure,其中有一部分是default 的值,用来设置编译支持选项:
linux_aio=”yes”
kvm=”yes”
spice=”yes”
usb_redir=”yes”

或者直接在命令行中设置也可

qemu依赖的第三方库
sudo apt-get install device-tree-compiler texi2html texinfo libaio-dev libattr1-dev libbluetooth-dev libbrlapi-dev libcap-dev libcap-ng-dev libcurl4-gnutls-dev libfdt-dev libgnutls-dev libncurses5-dev libpulse-dev libsdl1.2-dev libseccomp-dev libxen-dev uuid-dev xfslibs-dev librados-dev librbd-dev

在configure的时候最好看下帮助,其中target system最好指定下,不然编译时间会很长。

编译libvirt

安装依赖包
sudo apt-get install cdbs libxml2-dev libreadline-dev python-all-dev lvm2 open-iscsi libparted0-dev libdevmapper-dev libudev-dev libpciaccess-dev libnl-3-dev libnl-route-3-dev libyajl-dev libpcap0.8-dev libnuma-dev radvd libnetcf-dev libaudit-dev dwarves libxml2-utils libapparmor-dev libcurl4-openssl-dev

sudo apt-get install bridge-utils cgroup-lite cgroup-bin

./configure
make
sudo make install

如果make check的时候发现有几个没有pass,跟firewall相关,就不用管了

貌似重启了一次,但是virsh –version的时候,发现找不到virsh: error while loading shared libraries: libvirt-lxc.so.0: cannot open shared object file: No such file or directory

应该是ldconf的目录没有。

在/etc/ld.so.conf.d/目录下,创建一个libvirt.conf的文件,内容:

libvirt default configuration

/usr/local/lib

运行sudo ldconfig即可。
定义了xml文件后,可以使用
sudo virsh define xxx.xml来定义虚拟机
sudo virsh start xxx 启动虚拟机
sudo virsh list 检查

如果碰到这个问题:
LibvirtError: Failed to connect socket to ‘/usr/local/var/run/libvirt/libvirt-sock’: Connection refused
解决:用root权限启动libvirt。将原来的libvirt进程杀死,然后sudo libvirtd -d

检查kvm是否可用
lsmod | grep kvm

cpu是否支持
cat /proc/cpuinfo | grep ‘vmx|svm’

单纯使用qemu创建虚拟机的过程

1)创建磁盘
$ qemu-img create -f qcow2 xxx.img 10G

2)使用iso镜像启动
qemu-system-x86_64 -m 2048 -enable-kvm -hda xxx.img -cdrom xxx.iso -boot d

不过上面的命令行还缺少远程连接的命令行参数,显示的命令行参数

libvirtd 和virt-manager

安装的时候参考
http://blog.csdn.net/heybob/article/details/24481397
http://ask.xmodulo.com/compile-virt-manager-debian-ubuntu.html
还安装了sudo apt-get install gettext
才算成功

但是libvirt-bin还是出问题

virt-manager还是没有连接到libvirt
http://blog.chinaunix.net/uid-22166872-id-4155209.html

参见上面找不到libvirtd的sock,需要root权限

但是virt-manager只有lxc连接。。。,这个问题问题怎么解决
可以选择新建连接,直接加入本机的qemu连接。

创建虚拟机的是,还出现存储池的问题,直接删除原有的default存储池,新建一个就可以了

网络连接也是。

不过目前碰到问题是,virtlogd拒绝连接
http://serverfault.com/questions/677542/error-on-nova-compute-strart-libvirt-failed-to-connect-socket-to-var-run-li
修改libvirtd.conf,更改了unix socket权限也不管用。。。

还有就是libvirt-bin装不了。。。

直接删除libvirt,使用包管理的也不行。。。

#

重新装系统,重新编译spice之类的
更改/etc/apt/source.list,使得src生效(由于使用的清华的tuna镜像站,提供的src源一般会被注释掉,所以取消注释,重新sudo apt-get update一下)

sudo apt-get build-dep xxx
再进行编译
但是有的时候会涉及到自己想编译的包,要仔细看下
然后直接拷贝可能安装的包,去除自己想要编译的包。

$./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc

1)首先编译spice-protocol
build-dep
./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc
make
sudo make install

2)编译spice
build-dep中去掉spice-protocol中,直接install

celt051还是要单独编译安装
libogg没有sudo apt-get install libogg-dev
./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc
make
sudo make install

./configure –prefix=/usr –localstatedir=/var –sysconfdir=/etc(继续配置spice)
缺少LZ4 support和gstreamer
sudo apt-get install liblz4-dev
sudo apt-get install libgstreamer1.0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install gstreamer1.0-plugins-ugly
sudo apt-get install gstreamer1.0-libav

3)编译spice gtk
build-dep 去掉spice-protocol,直接sudo apt-get install
sudo apt-get install gstreamer1.0-plugins-bad
make
sudo make install

4)安装virt-manager
直接安装apt-get install virt-manager
直接安装,但是spice相关的包没法使用apt-get单独remove,会在/usr/lib/x86_64-linux-gnu下面有几个lib,一旦运行了spicy,会出现link with no time reference的错误
将下面几个老版本的库移到别的地方,这样spicy就可以正常运行了。
lrwxrwxrwx 1 root root 33 12月 26 2015 libspice-client-glib-2.0.so.8 -> libspice-client-glib-2.0.so.8.5.0
-rw-r–r– 1 root root 1117536 12月 26 2015 libspice-client-glib-2.0.so.8.5.0
lrwxrwxrwx 1 root root 32 12月 26 2015 libspice-client-gtk-3.0.so.4 -> libspice-client-gtk-3.0.so.4.0.0
-rw-r–r– 1 root root 231440 12月 26 2015 libspice-client-gtk-3.0.so.4.0.0
lrwxrwxrwx 1 root root 28 12月 26 2015 libspice-controller.so.0 -> libspice-controller.so.0.0.0
-rw-r–r– 1 root root 63400 12月 26 2015 libspice-controller.so.0.0.0
lrwxrwxrwx 1 root root 25 2月 16 03:37 libspice-server.so.1 -> libspice-server.so.1.10.0
-rw-r–r– 1 root root 1182176 2月 16 03:37 libspice-server.so.1.10.0

git下来的spice-gtk出问题
//usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0: error adding symbols: DSO mi

处理qemu,查看http://wiki.qemu-project.org/Hosts/Linux

 类似资料: