可以在Heroku上运行xvfb吗?

可以在Heroku上运行xvfb吗?,heroku,xvfb,Heroku,Xvfb,我想在Heroku上运行xvfb。在我的mac电脑上,我用dmg安装了它。有人知道如何在Heroku身上进行吗 我遇到了这些buildpack()——但是按照说明似乎并没有解决问题,因为xvfb仍然没有正确安装。另外,我尝试安装xvfbwrapper(),但它在Heroku上仍然不起作用(对于可能存在的noob问题,我深表歉意) 以下是我在Heroku的日志中发现的错误: 2015-02-24T02:09:16.035298+00:00 app[web.6]: cmd=['Xvfb', '-he

我想在Heroku上运行xvfb。在我的mac电脑上,我用dmg安装了它。有人知道如何在Heroku身上进行吗

我遇到了这些buildpack()——但是按照说明似乎并没有解决问题,因为xvfb仍然没有正确安装。另外,我尝试安装xvfbwrapper(),但它在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])

我也在想同样的事情。看来你已经找到了。所有提到的构建包都有1年以上的历史,不再工作

两个看似可行的选择:

  • 编译一个在Heroku当前的操作系统和体系结构上运行的自包含xvfb二进制文件a la,并在更新时重建

  • 将apt软件包管理器中的所有依赖项安装到~/.apt之类的位置,然后从那里运行,就像最新版本一样。对我来说,这个选项会随着
    sh:1:/usr/bin/xkbcomp:notfound
    而消失。Xvfb正在查看
    /
    ,而apt将命令安装到
    ~/.apt/usr/bin/xkbcomp
    。还不知道如何告诉Xvfb查看
    ~/.apt/


  • 我在研究如何为Cedar-14更新Xvfb时发现了这个问题,我设法让#2正常工作。下面是如何:

  • 我使用buildpack apt安装
    x11 xkb utils xvfb x11 xkb utils xfonts-100dpi xfonts-75dpi xfonts可伸缩xfonts西里尔libxfont1 xvfb

  • 在运行apt构建包之后,您需要对Xvfb进行一点修补,以使一切工作顺利进行。为此,我使用了我自己的,但是在Heroku编译期间让您运行bash脚本的所有东西都可以工作。下面是我用来修补Xvfb和索引字体的脚本:

  • 现在,您可以使用heroku run bash检查
    XAUTHORITY=/tmp/xvfb-run.2NG0xl/XAUTHORITY xvfb“:99”-屏幕0 1280x1024x24-不侦听tcp
    ,确认xvfb正在工作


  • 是的,这是可能的,但很复杂。我遵循了fxtentacle的一些做法(在他们的回答中),但这可能更简单。这些说明提供了最小的Xvfb设置;它仍然打印出一堆警告

    用于安装
    xvfb
    libnotify4
    debian软件包。然后使用此构建包修复
    /usr/bin/xkbcomp
    问题:


    然后您可以使用
    xvfb run$PROGRAM
    运行您的应用程序。

    我也被卡住了。昨天我很容易在amazon上运行它,但它在heroku上就是不动。使用上面的指令,我能够运行xvfb run。不幸的是,electron在加载共享库时失败:
    错误:libnotify.so.4:无法打开共享对象文件:没有这样的文件或目录
    。通过
    bash
    手动运行它不会出现任何错误。libnotify4安装在
    /app/.apt
    下。我想知道为什么节点进程没有选择
    LD\u LIBRARY\u PATH
    env var。啊,这在上个月的某个时候发生了变化-您是否通过Aptfile for heroku buildpack apt安装了libnotify4?我还必须添加它(除了xvfb)。你可以通过运行heroku run bash来检查你的
    LD\u库路径
    ,以获得一个shell。是的,我是通过Aptfile安装的。在bash上用
    xvfb run
    调用electron并没有给我带来任何问题。然而,通过nodejs进程来实现这一点对我来说从来都不起作用:(.我甚至试图从Heroku配置中设置
    LD_LIBRARY\u路径
    ,运气不好--这又是
    libnotify4
    问题。Electron还有其他问题-这在最近的版本中得到了修复: