安装和配置Xvfb

25

我正在尝试找到一个兼容的Ubuntu操作系统、xorg版本和xvfb版本。有没有人可以帮我指导如何安装xvfb而不会遇到 Initializing build-in extension GLX 的问题?

目前为止,我已经尝试了以下方法:

Ubuntu 13 Server(No graphics card)
sudo apt-get install xorg 
sudo apt-get install xvfb
sudo apt-get install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic

我运行了命令 xvfb :10,但它卡住了。

Initializing build-in extension GLX

有没有特定的版本可以下载并且能够工作,或者一个兼容的操作系统?


1
在Ubuntu 14.04服务器上,我也遇到了这个问题。 - Sergio Belevskij
5个回答

19

安装 Xvfb 或 Xephyr 或 Xvnc。还需安装 pyvirtualdisplay Python 模块。此方法适用于 Ubuntu 14.04,也已在 16.04 上测试过。

sudo apt-get install python-pip
sudo apt-get install xvfb xserver-xephyr vnc4server
sudo pip install pyvirtualdisplay
# optional
sudo apt-get install python-pil scrot
sudo pip install pyscreenshot

现在您可以从Python脚本中启动Xvfb。当执行您的脚本时,它将启动Xvfb。请将以下行添加到您的代码中。

from pyvirtualdisplay import Display
display = Display(visible=0, size=(1366, 768))
display.start()

这里是示例代码。

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(1366, 768))
display.start()
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.quit()

display.stop()

8

谢谢。使用xvfb-run <myprogram>比配置xvfb要容易得多。 - Alex

6
输出结果表示xvfb工作正常。它应该作为后台进程(或服务)运行。

我遇到了同样的问题。为了澄清一下...它挂起来是正常的吗?当它挂起来时,我应该使用控制-C退出进程吗? - Ribena
4
如果您希望运行xvfb以便其他程序使用它,则xvfb进程必须作为后台进程执行(即xvfb [args]&)。如果您执行它,并且在进程中使用Ctrl-C,它将被终止,其他程序将无法使用它。请注意,这里“控制-C”指的是通过按下键盘上的“Ctrl”和“C”键来终止进程。 - tomper

1
在我的日志文件中,我看到一切都正常,直到初始化内置扩展GLX,但接着是


The XKEYBOARD keymap compiler (xkbcomp) reports:
> Internal error:   Could not resolve keysym XF86AudioMicMute
Errors from xkbcomp are not fatal to the X server

也许关键问题在于xkbcomp?

-1

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