如何在 Linux 上无头运行 Firefox(即不需要 libgtk-x11-2.0.so.0)?

如何在 Linux 上无头运行 Firefox(即不需要 libgtk-x11-2.0.so.0)?

我有 Dreamhost 共享主机,并且我正在尝试在其上无头运行 Firefox 3.0,以便与 Selenium 一起使用。

当我尝试运行它 ( ~/local/bin/firefox/firefox) 时,我收到以下错误消息:

error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

如何在不需要此共享对象文件的情况下在 Linux 上运行 Firefox?

答案1

如果没有 Firefox 所需的所有 Gtk 库,您就无法运行 Firefox,但这可以通过安装库轻松解决。通常,您会通过包管理系统安装 Firefox,这会引入所有必需的库。

要正常运行 Firefox,您需要X服务器(这是显示窗口及其内容的部分,而不是像 Gtk 这样的东西,Gtk 是应用程序用来构建内容的库)。这是您通常不会在服务器上运行的东西。在没有 X 服务器的情况下,你可以在 Firefox 中做很少的事情,我不知道 Selenium 是否是其中之一。

要在您的服务器上运行 Firefox,请运行“虚拟”X 服务器。一个简单的就是 Xvfb (v虚拟的F拉梅承受X服务器)。它位于X.org 服务器分布。使用示例:

Xvfb :19 -screen 0 1024x768x16 &
export DISPLAY=:19
firefox &

答案2

我知道这是一个相当老的问题,但我想添加一个更新的答案,因为我被谷歌引导到这里,并且不得不搜索一段时间才能找到答案。

从 Firefox 57 开始,您只需安装 Firefox 并运行即可以无头模式运行:

firefox -headless http://test.com/

请参阅此处的 Firefox 开发文档。

答案3

你不能;它与 X 和 Gtk+ 客户端库链接,我认为没有它们甚至不可能构建它。

即使在 Firefox 无头版本中,仍然需要 GTK+

答案4

你可以

  • 在虚拟帧缓冲区中使用 Firefox:xvfb-run -a firefox
  • 使用史莱默JS(来自 Firefox 的嵌入式 Gecko/渲染引擎)与 xcfb,
  • 使用PhantomJS作为嵌入式 WebKit,无需显示器和 selenium 支持幽灵司机- WebKit 是否适合您。

相关内容