Как я могу запустить Firefox в Linux без головы (то есть, не требуя libgtk-x11-2.0.so.0)?

17

У меня есть общий хостинг 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

Как я могу запустить Firefox в Linux, не требуя этот общий объектный файл?

Пол Д. Уэйт
источник

Ответы:

8

Я знаю, что это довольно старый вопрос, но я хотел добавить более свежий ответ, так как меня направили сюда от Google, и мне пришлось некоторое время искать, чтобы найти ответ.

Начиная с Firefox 57, вы можете работать в автономном режиме, просто установив Firefox и запустив:

firefox -headless http://test.com/

Смотрите документацию по Firefox здесь.

AlaskaJoslin
источник
Отлично - спасибо за добавление актуального, качественного ответа; это именно то, для чего предназначена Stack Exchange.
Пол Д. Уэйт
14

Вы не можете запустить Firefox без всех необходимых ему библиотек Gtk, но это легко решается путем установки библиотек. Обычно вы устанавливаете Firefox через систему управления пакетами, и это включает все необходимые библиотеки.

Для нормальной работы Firefox вам необходим X-сервер (это та часть, которая отображает окна и их содержимое, в отличие от таких вещей, как Gtk, которые являются библиотеками, которые приложение использует для создания контента). Это то, что вы обычно не запускаете на сервере. В Firefox очень мало вещей, которые вы можете делать без X-сервера, я не знаю, является ли Selenium одним из них.

Чтобы запустить Firefox на вашем сервере, запустите «виртуальный» X-сервер. Простой один Xvfb ( v irtual е Рэйм б uffer X - сервера). Это в дистрибутиве сервера X.org . Пример использования:

Xvfb :19 -screen 0 1024x768x16 &
export DISPLAY=:19
firefox &
Жиль "ТАК - прекрати быть злым"
источник
1
Отлично, ура Жиль, вот и все. Я также нашел эти статьи полезными для запуска Xvfb: alittlemadness.com/2008/03/05/running-selenium-headless и blog.kabisa.nl/2010/05/24/…
Пол Д. Уэйт,
7

Вы не можете; он связан с клиентскими библиотеками X и Gtk +, и я не думаю, что его даже можно построить без них.

Даже в безголовой версии Firefox GTK + все еще необходим .

geekosaur
источник
2

Поскольку Selenium - инструмент для тестирования графического интерфейса, трудно поверить, что он может работать без X.

Поэтому я думаю, что ваш безголовый сервер требует установки X, такой как предложенная Жилем. Есть ряд подобных альтернатив.

asoundmove
источник
2

Вы можете

  • используйте Firefox в виртуальном фреймбуфере: xvfb-run -a firefox
  • использовать SlimerJS (встроенный движок Gecko / рендеринга из Firefox) с xcfb,
  • используйте PhantomJS в качестве встроенного WebKit без необходимости отображения и поддержки селена через GhostDriver - если WebKit подходит для вас.
flob
источник
Я думаю, что вы имеете в виду «xvfb-run -a ...», а не xvfb, верно?
Кутзи
Спасибо :-) Может, это изменилось за это время?
флоп