Jeg har delt Dreamhost-hosting, og jeg prøver at køre Firefox 3.0 på den uden hoved til brug sammen med Selen.
Når jeg prøver at køre det (~/local/bin/firefox/firefox
), får jeg følgende fejlmeddelelse:
error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
Hvordan kan jeg køre Firefox på Linux uden at kræve denne delte objektfil?
Svar
Jeg ved, at dette er et ret gammelt spørgsmål, men jeg ville have for at tilføje et nyere svar, da jeg blev instrueret her af Google og måtte søge et stykke tid for at finde svaret.
Fra og med Firefox 57 kan du køre i hovedløs tilstand ved blot at installere Firefox og køre:
firefox -headless http://test.com/
Se Firefox-dev-dokumenter her.
Kommentarer
- Vær opmærksom på, at Firefox-hovedløs tilstand stadig nedkølet GTK3 installeret ved første udgivelser. Dette problem er løst nu, så vidt jeg ved.
Svar
Du kan ikke køre Firefox uden alle Gtk-bibliotekerne kræver det, men det løses let ved at installere bibliotekerne. Normalt installerer du Firefox gennem et pakkehåndteringssystem, og dette trækker alle de krævede biblioteker ind.
For at køre Firefox normalt skal du have en X-server (det er den del, der viser vinduerne og deres indhold, i modsætning til ting som Gtk, som er biblioteker, som applikationen bruger til at oprette indholdet). Det er noget, du normalt ikke kører på en server. Der er meget få ting, du kan gøre i Firefox uden en X-server. Jeg ved ikke, om Selen er en af dem.
For at køre Firefox på din server skal du køre en “virtuel” X-server. En simpel er Xvfb ( v irtual f ramme b uffer X server). Det er i X.org-serverdistribution . Eksempel på brug:
Xvfb :19 -screen 0 1024x768x16 & export DISPLAY=:19 firefox &
Kommentarer
- Fremragende, jubler Gilles, det er gjort. Jeg fandt også disse artikler nyttige til at få Xvfb til at køre: alittlemadness.com / 2008/03/05 / running-selen-headless og blog.kabisa.nl/2010/05/24/…
Svar
Du kan ikke “t; det er knyttet til X- og Gtk + -klientbibliotekerne, og jeg tror ikke, det er endda muligt at opbygge det uden dem.
Selv i Firefox-hovedløse version GTK + er stadig behov .
Svar
Da Selen er et GUI-testværktøj, vil jeg har svært ved at tro, at det kan fungere uden X.
Så mit bedste gæt er, at din hovedløse server kræver en X-installation som den, der er foreslået af Gilles. Der er en række lignende alternativer.
Svar
Du kan
- bruge en Firefox i en virtuel framebuffer:
xvfb-run -a firefox
- brug SlimerJS (en indlejret Gecko / rendering-motor fra Firefox) med xcfb,
- brug PhantomJS som indlejret WebKit uden behov for en skærm- og selenstøtte via GhostDriver – hvis WebKit er OK for dig.
Kommentarer
- Jeg tror du mener ' xvfb-run -a … ' og ikke xvfb, ikke?
- Tak 🙂 Måske er det ændret i mellemtiden?