源碼下載地址:
https://www.spice-space.org/download.html
spice-protocol: https://www.spice-space.org/download/releases/spice-protocol-0.12.15.tar.bz2
spice-gtk-0.35: https://www.spice-space.org/download/gtk/spice-gtk-0.35.tar.bz2
usbredir-0.8: https://www.spice-space.org/download/usbredir/usbredir-0.8.0.tar.bz2
virt-viewer-8.0: https://virt-manager.org/download/sources/virt-viewer/virt-viewer-8.0.tar.gz
注:以下流程未安裝gstreamer。
如需安裝gstreamer,則安裝如下:
sudo apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools
如果編譯時提示找不到gstreamer,則需要:
sudo apt install libgstreamer-plugins-base1.0-dev
如果無法安裝,可能需要修改或者添加apt的安裝源。
編譯spice-server
這邊也順手寫一下spice-server在CentOS下的編譯安裝吧。
獲取、修改源碼
wget https://www.spice-space.org/download/releases/spice-server/spice-0.14.1.tar.bz2
install deps && config && make,缺啥包你們自己補吧
注意,這裏沒有添加gstreamer的支持,你可以自己不上gstreamer的相關包,然後–enable-gstreamer=yes
yum install spice-protocol
yum install glib2 glib2-devel
yum install pixman pixman-devel
yum install celt051 celt051-devel
yum install openssl openssl-devel
yum install libjpeg-turbo libjpeg-turbo-devel
yum install opus opus-devel
yum install cyrus-sasl cyrus-sasl-devel lz4 lz4-devel usbredir*
./configure --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib64 --enable-gtk-doc-pdf=no --enable-gtk-doc-html=no --enable-celt051 --enable-manual=no --enable-gstreamer=no
make -j8
#for spice-protocol
- cd spice-protocol-0.12.15/
- ./configure --prefix=/usr --libdir=/usr/lib 或者lib64
- make
- sudo make install
#for spice-gtk-0.35
安裝依賴包:
apt install libpixman-1-dev libssl-dev libgtk-3-dev libjpeg-turbo8-dev libopus-dev liblz4-dev libpulse-dev libsasl2-dev libcacard-dev usbredir* intltool
config:
./configure --prefix=/usr --libdir=/usr/lib --enable-gtk-doc-html=no --enable-usbredir=yes
> > --enable-celt051 可要可不要
> > --enable-gstaudio=yes --enable-gstvideo=yes 可要可不要
如果報錯:
/usr/local/lib/libusbredirhost.so: undefined reference to `libusb_set_option’
則卸載usbredir:
sudo apt remove libusbredirparser1
下列軟件包將被【卸載】:
libusbredirhost-dev libusbredirhost1 libusbredirparser-dev
libusbredirparser1
如果報錯:
checking for USBREDIR… no
configure: error: usbredir support explicitly requested, but some required packages are not available
則需要編譯安裝usbredir:
- tar xvjf usbredir-0.8.0.tar.bz2
- cd usbredir-0.8.0/
- ./configure
或者 ./configure --prefix=/usr --libdir=/usr/lib (建議用這個)
此時報錯:
checking for LIBUSB… no
configure: error: Package requirements (libusb-1.0 >= 1.0.9) were not met:No package ‘libusb-1.0’ found
然後:
sudo apt install libusb-1.0-0-dev
報錯:
下列軟件包有未滿足的依賴關係:
libusb-1.0-0-dev : 依賴: libusb-1.0-0 (= 2:1.0.20-1) 但是 2:1.0.22-2 正要被安裝
推薦: libusb-1.0-doc 但是它將不會被安裝
E: 無法修正錯誤,因爲您要求某些軟件包保持現狀,就是它們破壞了軟件包間的依賴關係。
解決辦法: 使用aptitude降級 或者 dpkg -i 安裝libusb-1.0-0-dev_1.0.22-2_amd64.deb
- sudo apt-get install aptitude
- sudo aptitude install libusb-1.0-0=2:1.0.20-1
- sudo apt install libusb-1.0-0-dev
然後繼續編譯安裝usbredir-8.0
#for virt-viewer-8.0
./configure --prefix=/usr --libdir=/usr/lib --without-gtk-vnc --without-ovirt
tips:
在使用過程中,有個小細節需要注意。就是如果使用spice-gtk的spicy,全屏模式下是通過 shift + F12來退出全屏。
而virt-viewer,編譯成功之後,生成的可執行文件名字是remote-viewer,就算是走spice協議,也無法通過 shift + F12來退出全屏,而是通過屏幕頂部的懸浮按鈕。
究其原因,因爲remote-viewer和spicy實際上是調用libspice-client-gtk-3.0.so和libspice-client-glib-2.0.so,在此基礎上分別單獨實現的gtk程序,二者的實現方法有點區別。
具體區別,後面有空再講。哈哈哈哈哈