我想在Heroku上运行xvfb。在我的Mac上,我使用dmg来安装它。有谁会知道如何在Heroku上进行此操作?
我遇到了这些构建包(http://github.com/douglasjsellers/heroku-xvfb-buildpack) - 但是按照说明似乎没有解决问题,因为xvfb仍未正确安装。此外,我尝试安装xvfbwrapper(https://pypi.python.org/pypi/xvfbwrapper/0.1.0),但它还没有在Heroku上工作(为可能的noob问题道歉)。
以下是我在Heroku日志中出现的错误:
2015-02-24T02:09:16.035298+00:00 app[web.6]: cmd=['Xvfb', '-help']
2015-02-24T02:09:16.035564+00:00 app[web.6]: Program install error!
2015-02-24T02:09:16.035302+00:00 app[web.6]: OSError=[Errno 2] No such file or directory
以下是代码:
temp = tempfile.mkstemp(suffix='.html')
html = os.fdopen(temp[0], "r+")
html.write(cv)
html.seek(0, 0)
display = Display(visible=0, size=(800, 600))
display.start()
# Open the file on Selenium to load the JavaScript
driver = webdriver.Firefox()
driver.get("file://" + temp[1])
答案 0 :(得分:4)
我在研究如何为Cedar-14更新Xvfb时发现了这个问题,我设法让#2工作。所以这里有:
我使用buildpack-apt来安装x11-xkb-utils xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic libxfont1 xvfb
。
运行apt buildpack之后,需要修补一下Xvfb以使一切顺利进行。为此,我使用了自己的run-bash buildpack,但是在Heroku编译期间允许你运行bash脚本的所有东西都可以使用。这是我用来修补Xvfb并为字体编制索引的脚本:https://gist.github.com/fxtentacle/960cdb96ece01add8686
现在,您可以使用heroku run bash
与XAUTHORITY=/tmp/xvfb-run.2NG0xl/Xauthority Xvfb ":99" -screen 0 1280x1024x24 -nolisten tcp
核对Xvfb正在运作。
答案 1 :(得分:4)
是的,这是可能的,但很复杂。我跟着fxtentacle所做的一些事情(在他们的回答中),但这可能更简单。这些指令提供了最小的Xvfb设置;它仍会打印出一堆警告。
使用heroku-buildpack-apt安装xvfb
和libnotify4
debian软件包。然后使用此buildpack来修复/usr/bin/xkbcomp
问题:
https://github.com/captain401/heroku-buildpack-xvfb
然后您可以使用xvfb-run $PROGRAM
来运行您的应用程序。
答案 2 :(得分:2)
我想知道同样的事情。好像你已经找到了this guy's issue。提到的所有构建包都已有1年多的历史了,不再适用了。
两种可行的看似选择:
编译一个自包含的xvfb二进制文件la https://github.com/kenshin23/xvfb-portable-binary,它运行在Heroku当前的操作系统和体系结构上,在更新时进行重建。
将apt包管理器中的所有依赖项安装到像〜/ .apt这样的地方,并从那里运行,如最新的buildpack-apt。对我来说,这个选项随sh: 1: /usr/bin/xkbcomp: not found
而死。 Xvfb正在寻找/
,而apt则将命令安装到~/.apt/usr/bin/xkbcomp
。 Haven没弄明白如何告诉Xvfb查看~/.apt/
。