首页 > QEMU, Spice > Spice 分析(1) – 构建 Spice 开发环境

Spice 分析(1) – 构建 Spice 开发环境

Spice 基本的组件包括:

spice-protocol
Spice 协议, 全是以头文件的形式提供的, 这个头文件 expose 给外部用到spice的相关程序, e.g. QEMU, spice-gtk
spice-common
提供了一些公共的模块, 比如内存分配的 API, ssl 的 API 等, 是给 spice-server 和 spice-gtk 共同使用的.
spice-server
以库的形式提供接口, 一方面用 spice-protocol 和 client 通信, 一方面, hypervise 调用其提供的接口提供 VDI 的能力, 如果是做客户端开发, 这个组件是不需要的.
spice-gtk
用 gtk 封装的一系列客户端与 spice-server 通信的 API, 包括 连接 spice 实例, 传递鼠标键盘事件等等, 如果是做 hypervise 端的开发, 比如 只使用 QEMU/KVM, 那么不需要这个组件.

clone 项目仓库

在 git 仓库里, spice-common 作为 spice 和 spice-gtk 的一个子项目存在, spice-protocol 又是在 spice-common 里的一个子项目, 所以只需要 clone spice 和 spice-gtk 就可以了.

$ git clone git://git.freedesktop.org/git/spice/spice
$ git clone git://git.freedesktop.org/git/spice/spice-gtk

编译安装

$ cd spice && ./autogen.sh --prefix=/usr && make -j5 && sudo make install
$ cd spice-gtk && ./autogen.sh --prefix=/usr && make -j5 && sudo make install

当然可以在编译的时候做一些更深的定制, 比如我的:

$ cd spice && ./autogen.sh --prefix=/usr --build=x86_64-pc-linux-gnu \
--host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info \
--datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib \
--libdir=/usr/lib64 --disable-dependency-tracking --disable-static \
--disable-tunnel --enable-client --enable-gui --without-sasl \
--disable-static-linkage && make -j5 && sudo make install
 
$ cd spice-gtk && ./autogen.sh --prefix=/usr --build=x86_64-pc-linux-gnu \
--host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info \
--datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib \
--libdir=/usr/lib64 --disable-dependency-tracking --disable-maintainer-mode \
--disable-static --enable-introspection --with-audio=pulse --without-python \
--without-sasl --enable-polkit --disable-vala --with-gtk=3.0 --enable-werror \
--enable-usbredir && make -j5 && sudo make install

分类: QEMU, Spice 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.