在CentOS或RH类型的Linux上启动vncserver失败并显示“致命服务器错误:无法打开默认字体'fixed'”。我该如何解决?

9

我希望在通用/干净的Centos或RH类型的Linux上设置vncserver。 我正在AWS EC2基础设施内工作,但我认为这并不重要。

为了使此操作成功,我们需要一些前提条件来帮助我们运行vnc会话,例如X Windows。

我已经安装了所有通常的软件包,并通过yum实现了便利,并遵循了我可以在互联网上找到的所有建议。

# Start by installing the X Windows System (-y to auto accept) 
yum groupinstall -y "X Window System"

然后
# Install the VNC stuff
yum install -y  tigervnc-server tigervnc-server-module 

但是,当我尝试启动VNC时

service vncserver start

我收到了这样的错误信息(在运行vncpasswd并修改/etc/sysconfig/vncservers之后):

bash-4.1# service vncserver start
Starting VNC server: 2:root xauth:  creating new authority file /root/.Xauthority

WARNING: The first attempt to start Xvnc failed, possibly because the font
catalog is not properly configured.  Attempting to determine an appropriate
font path for this system and restart Xvnc using that font path ...
Could not start Xvnc.


Xvnc TigerVNC 1.1.0 - built Feb 22 2013 22:28:37
Copyright (C) 1999-2011 TigerVNC Team and many others (see README.txt)
See http://www.tigervnc.org for information on TigerVNC.
Underlying X server release 11300000, The X.Org Foundation

Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension VNC

Mon Apr  1 01:09:13 2013
 vncext:      VNC extension running!
 vncext:      Listening for VNC connections on all interface(s), port 5902
 vncext:      created VNC server for screen 0
[dix] Could not init font path element catalogue:/etc/X11/fontpath.d, removing from list!
[dix] Could not init font path element built-ins, removing from list!

Fatal server error:
could not open default font 'fixed'

我尝试了互联网上所有有关安装字体、创建链接、重命名x、y和z等建议和技巧,但都无济于事。我该怎么做才能让它起作用?
7个回答

11

对我来说使这个工作的yum安装的神奇组合如下:

yum groupinstall -y "X Window System"
yum install -y  tigervnc-server tigervnc-server-module libXfont pixman xterm xorg-x11-twm
chkconfig --level 345 vncserver on

那么为了方便,可能可以像这样开始进行操作

echo 'VNCSERVERS="2:root"' >> /etc/sysconfig/vncservers

假设您已经以root身份执行所有操作并愿意在DISPLAY 2上启动您的vncserver。

如果在vncserver运行后尝试连接时出现连接被拒绝的错误,请检查以下几点:

  1. 您的本地防火墙(iptables)或其他防火墙是否允许连接5902端口(或者您的服务器使用的其他端口)

  2. 您没有通过/etc/sysconfig/vncservers中的VNCSERVERARGS选项禁止远程连接到vncserver,例如:

    VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
    

类似这样的东西

tcpdump port 5902

可以帮助您确定是本地还是远程防火墙问题等。


7

我更新了libXfont库,这对我很有帮助。

例如,在CentOS中,请执行以下操作:

yum update libXfont

谢谢 Dave。我希望-1是因为我的英语不好,而不是更新库的想法。 - Udi

2
以下步骤适用于我:
yum groupinstall -y Desktop

yum -y install tigervnc-server pixman pixman-devel libXfont

chkconfig --levels 235 vncsever on

创建VNC密码
[root@krizna ~]$vncpasswd

打开/etc/sysconfig/vncservers并添加以下行(根据您的要求更改)
VNCSERVERS="1:root"

VNCSERVERARGS[1]="-geometry 800x600"

现在开始启动服务。
service vncserver start

现在您可以无错误地启动服务。

请查看此链接在CentOS 6上安装VNC


1

请仔细检查你在“/”下是否有足够的空闲空间。我之前遇到了上述错误是因为“/”下没有可用的空闲空间。


0
  1. 确保您的系统已安装以下软件包

    yum -y install tigervnc-server pixman pixman-devel libXfont
    
  2. 通过编辑/etc/sysconfig/vncservers文件并将您的用户添加到未注释的行中,确保正确配置了vncserver

    VNCSERVERS="2:user_name"
    

    并取消以下行的注释

    VNCSERVERSARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
    
  3. 切换到用户user_name并设置vncpasswd

  4. 通过service vncserver restart重新启动vncserver服务。

  5. 创建一个vncserver会话vncserver :1

  6. 确保您的防火墙接受您的连接。


0

对我来说,我只需要这个:

sudo yum install xorg-x11-fonts-base

虽然后来我遇到了另一个问题:" VNC:无法在会话总线上获取名称"。 在这里提到了这个问题:http://ubuntuforums.org/showthread.php?t=1480094,但我还没有彻底解决它...


-2

确保您的循环接口已启动。


什么是循环接口?你能扩展一下你的回答吗? - Micer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接