Làm cách nào tôi có thể chạy Firefox trên Linux không đầu (tức là không cần libgtk-x11-2.0.so.0)?


17

Tôi đã có Dreamhost chia sẻ lưu trữ và tôi đang cố gắng chạy Firefox 3.0 trên đó để sử dụng với Selenium.

Khi tôi cố chạy nó ( ~/local/bin/firefox/firefox), tôi nhận được thông báo lỗi sau:

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

Làm cách nào tôi có thể chạy Firefox trên Linux mà không yêu cầu tệp đối tượng dùng chung này?

Câu trả lời:


8

Tôi biết đây là một câu hỏi khá cũ, nhưng tôi muốn thêm một câu trả lời gần đây hơn khi tôi được Google hướng dẫn ở đây và phải tìm kiếm một lúc để tìm câu trả lời.

Kể từ Firefox 57, bạn có thể chạy ở chế độ không đầu chỉ bằng cách cài đặt Firefox và chạy:

firefox -headless http://test.com/

Xem tài liệu dev của Firefox tại đây.


Tuyệt vời - cảm ơn vì đã thêm một câu trả lời cập nhật, chất lượng cao; đó chính xác là những gì Stack Exchange được thiết kế cho.
Paul D. Chờ

14

Bạn không thể chạy Firefox mà không có tất cả các thư viện Gtk mà nó yêu cầu, nhưng điều đó dễ dàng được giải quyết bằng cách cài đặt các thư viện. Thông thường bạn sẽ cài đặt Firefox thông qua một hệ thống quản lý gói và điều này sẽ kéo theo tất cả các thư viện cần thiết.

Để chạy Firefox bình thường, bạn cần một máy chủ X (đó là phần hiển thị các cửa sổ và nội dung của chúng, trái ngược với những thứ như Gtk là các thư viện mà ứng dụng sử dụng để xây dựng nội dung). Đó là thứ bạn thường không chạy trên máy chủ. Có một vài điều bạn có thể làm trong Firefox mà không cần máy chủ X, tôi không biết liệu Selenium có phải là một trong số đó không.

Để chạy Firefox trên máy chủ của bạn, hãy chạy máy chủ ảo Virtual X. Một cái đơn giản là Xvfb ( v irtual f rame b uffer X server). Đó là trong bản phân phối máy chủ X.org . Sử dụng mẫu:

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

1
Tuyệt vời, chúc mừng Gilles, đã làm điều đó. Tôi cũng thấy những bài viết này hữu ích để chạy Xvfb: alittlemadness.com/2008/03/05/rucky-selenium-headless , và blog.kabisa.nl/2010/05/24/
Paul D. Waite

7

Bạn không thể; nó được liên kết với các thư viện máy khách X và Gtk + và tôi không nghĩ rằng thậm chí có thể xây dựng nó mà không có chúng.

Ngay cả trong phiên bản không đầu của Firefox, GTK + vẫn cần thiết .


2

Vì Selenium là một công cụ kiểm tra GUI, tôi sẽ khó tin rằng nó có thể hoạt động mà không có X.

Vì vậy, dự đoán tốt nhất của tôi là máy chủ không đầu của bạn yêu cầu cài đặt X như Gilles đề xuất. Có một số lựa chọn thay thế tương tự.


2

Bạn có thể

  • sử dụng Firefox trong bộ đệm khung ảo: xvfb-run -a firefox
  • sử dụng SlimerJS (công cụ kết xuất / kết xuất Gecko được nhúng từ Firefox) với xcfb,
  • sử dụng PhantomJS dưới dạng WebKit nhúng mà không cần hỗ trợ hiển thị và selen thông qua GhostDriver - nếu WebKit phù hợp với bạn.

Tôi nghĩ bạn có nghĩa là 'xvfb-run -a ...' chứ không phải xvfb, phải không?
Kutzi

Cảm ơn :-) Có lẽ nó đã thay đổi trong lúc này?
nổi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.