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

Pau*_*ite 20 headless firefox gtk

我有 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
Run Code Online (Sandbox Code Playgroud)

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

Gil*_*il' 15

如果没有它所需的所有 Gtk 库,您将无法运行 Firefox,但是通过安装这些库可以轻松解决这个问题。通常你会通过一个包管理系统安装 Firefox,这会拉入所有需要的库。

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

要在您的服务器上运行 Firefox,请运行“虚拟”X 服务器。一个简单的一个是的Xvfb(v irtual ˚F RAME b uffer X服务器)。它在X.org 服务器发行版中。示例用法:

Xvfb :19 -screen 0 1024x768x16 &
export DISPLAY=:19
firefox &
Run Code Online (Sandbox Code Playgroud)


小智 10

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

从 Firefox 57 开始,您只需安装 Firefox 并运行:

firefox -headless http://test.com/
Run Code Online (Sandbox Code Playgroud)

在此处查看 Firefox 开发文档。


gee*_*aur 8

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

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