Как я могу запускать Firefox на Linux без проблем (т.е. без требования 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 

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

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

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

Чтобы запустить Firefox на своем сервере, запустите «виртуальный» X-сервер. Простым является Xvfb ( v irtual f rame b uffer X server). Он находится в дистрибутиве X.org . Использование образца:

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

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

Поскольку Selenium – инструмент для тестирования GUI, мне было бы трудно поверить, что он может работать без X.

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

Ты можешь

  • использовать Firefox в виртуальном фреймбуфере: xvfb -a firefox
  • используйте SlimerJS (встроенный движок Gecko / rendering от Firefox) с помощью xcfb,
  • используйте PhantomJS как встроенный WebKit без необходимости поддержки дисплея и селена через GhostDriver – если WebKit подходит для вас.