我们安装的 tigervnc 会安装两个 vnc 的 server,一个叫 vncserver,另外一个叫 x0vncserver,前者依赖 Xvnc 工具,这个工具的编译方法也在那个BUILDING.txt 里,两个都能用,如果需要编译 Xvnc 可以跳到后面去
Releases · TigerVNC/tigervnc · GitHub
我之前安装过一些依赖,下面这个依赖不一定全,具体还是参照上面的 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
- # 进入源码目录,root权限
- cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -Wno-dev .
- make
- make install
上面路径默认安装到 /usr
首先打开图形化的终端(非xshell这种终端),需要桌面的
接着在终端设置vnc密码,中间有个 view-only,输入n 就行了
vncpasswd
启动命令 (默认端口 5900)
x0vncserver PasswordFile=/root/.vnc/passwd
中间那个文件是我们设置vncpassword之后,就会自动创建到你的用户目录下
如果你开启服务后没有报错,然后vnc客户端又连不上,看看是不是防火墙之类的网络问题
systemctl stop firewalld
----------------------------------------------------------分界线-----------------------------------------------------------
- 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
- cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -Wno-dev .
- make
- make install
- 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,接下来执行的命令就跟这个版本有关
patch -p1 < /root/tigervnc-1.10.0/unix/xserver120.patch
(/root/tigervnc-1.10.0 是源码目录,你可以替换成你的源码的目录,后面也是如此)
- 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”。 停止。
- 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