Centos 源码编译 tigervnc

我们安装的 tigervnc 会安装两个 vnc 的 server,一个叫 vncserver,另外一个叫 x0vncserver,前者依赖 Xvnc 工具,这个工具的编译方法也在那个BUILDING.txt 里,两个都能用,如果需要编译 Xvnc 可以跳到后面去

安装x0vncserver

1、下载源码

Releases · TigerVNC/tigervnc · GitHub

2、安装依赖 (参考源码目录里的 BUILDING.txt)

我之前安装过一些依赖,下面这个依赖不一定全,具体还是参照上面的 BUILDING.txt

yum install zlib-devel cmake libjpeg-turbo-devel make libtool gcc-c++
# 解决这个编译问题,这个不安装,使用 x0vncserver 就只能看不能操作
# No XTest extension.  x0vncserver will be view-only.
yum install libXtst-devel 
# 解决这个编译问题
# No Xrandr extension.  x0vncserver will not be able to resize session.
yum install libXrandr-devel
# 解决这个编译问题
# No DAMAGE extension.  x0vncserver will have to use the slower polling method.
yum install libXdamage-devel
# 貌似 fltk 可选安装
yum install fltk-devel
# 其中还提到 tls
yum install gnutls-devel

3、安装代码

# 进入源码目录,root权限
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -Wno-dev .
make
make install

上面路径默认安装到 /usr

4、使用 tigervnc

首先打开图形化的终端(非xshell这种终端),需要桌面的

接着在终端设置vnc密码,中间有个 view-only,输入n 就行了

vncpasswd

启动命令 (默认端口 5900)

x0vncserver  PasswordFile=/root/.vnc/passwd

中间那个文件是我们设置vncpassword之后,就会自动创建到你的用户目录下

如果你开启服务后没有报错,然后vnc客户端又连不上,看看是不是防火墙之类的网络问题

systemctl stop firewalld

----------------------------------------------------------分界线-----------------------------------------------------------

编译Xvnc

安装依赖 (前文中 x0vncserver 的依赖也要安装)

yum install libdrm-devel libxkbfile-devel libXfont2-devel libxshmfence-devel doxygen xmlto fop xorg-x11-xtrans-devel xorg-x11-server-source patch
# 解决这个编译问题
# No package 'pixman-1' found
yum install pixman-devel
# 解决这个编译问题
# No package 'gl' found
yum install xorg-x11-server-devel
# 解决这个编译问题
# utils.c:1992:31: fatal error: security/pam_appl.h: No such file or directory
yum install pam-devel

安装过程

1、解压tigervnc源码

2、进入tigervnc源码目录

3、执行 (这里不创建 build 目录)(先安装x0vncserver)

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -Wno-dev .
make
make install

4、执行

cp -R /usr/share/xorg-x11-server-source/* unix/xserver/
cd unix/xserver/

xorg-x11-server-source 是我们yum安装的包,我们需要看看它的版本

# yum list | grep xorg-x11-server-source
xorg-x11-server-source.noarch            1.20.4-18.el7_9               @updates

我的版本是1.20,接下来执行的命令就跟这个版本有关

5、执行 (120指的是xorg-x11-server-source的版本,其他版本要换成其他的)

patch -p1 < /root/tigervnc-1.10.0/unix/xserver120.patch

(/root/tigervnc-1.10.0 是源码目录,你可以替换成你的源码的目录,后面也是如此)

6、执行

autoreconf -fiv

./configure --with-pic --without-dtrace --disable-static --disable-dri \
      --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg \
      --disable-dmx --disable-xwin --disable-xephyr --disable-kdrive \
      --disable-dri2 --enable-glx \
      --disable-config-hal --disable-config-udev \
      --with-default-font-path="catalogue:/etc/X11/fontpath.d,built-ins" \
      --with-xkb-path=/usr/share/X11/xkb \
      --with-xkb-output=/var/lib/xkb \
      --with-xkb-bin-directory=/usr/bin \
      --with-serverconfig-path=/usr/lib64/xorg \
      --disable-devel-docs \
      --prefix=/usr/

这个编译方法在源码目录里的 BUILDING.txt,我删减了一些用不了的编译选项,增加了 --prefix=/usr/ ,即安装目录,和 --disable-devel-docs ,后面这个是禁用文档,因为编译的时候会报错,也用不上就禁了,报错下面这个

make[2]: *** 没有规则可以创建“all-am”需要的目标“Xserver-spec.xml”。 停止。

7、最后

make TIGERVNC_SRCDIR=/root/tigervnc-1.10.0/
make install

启动命令

vncserver 的启动关闭命令是,下面的1是端口,代表5901,如果是2就是5902,以此类推,记得设置 vncpassword

# 启动
vncserver :1
# 关闭
vncserver -kill :1

yum 直接安装的 tigervnc 是带Xvnc的,也就是能用vncserver (部分包有 Xvnc 没有 vncserver)

yum install tigervnc-server-minimal

未解决的问题

configure的时候报错缺少

configure: WARNING:
             ***********************************************
             Neither HAL nor udev backend will be enabled.
             Input device hotplugging will not be available!
             ***********************************************

看了一下centos的源没有这个 hal 和 udev 的库,就没有安装

可能出现的问题

1、找不到头文件

dri3.c:29:24: fatal error: drm_fourcc.h: No such file or directory

执行

cp -r /usr/include/libdrm/* /usr/include/

2、先编译 tigervnc,不然报错

make[2]: *** 没有规则可以创建“libvnc.la”需要的目标“/root/tigervnc-1.10.0//common/network/libnetwork.la”。 停止。

 首先是确保你做了第二步的cmake和make,其次,检查你是否是创建了build目录再cmake的,如果你不小心创建了,这种情况下需要手动指定build目录在继续编译(报错之后)(tigervnc 官方说不喜欢cmake之前创建目录,喜欢直接源码使用cmake)

TIGERVNC_BUILDDIR=/root/tigervnc-1.10.0/build

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值