Wie kann ich PhantomJS unter Ubuntu einrichten und ausführen?


163

Ich habe PhantomJS eingerichtet und als Video aufgezeichnet: https://www.dailymotion.com/video/xnizmh_1_webcam

Build-Anweisungen: http://phantomjs.org/build.html

Stimmt etwas in meinem Setup nicht?

Nachdem ich es eingerichtet hatte, las ich das Schnellstart-Tutorial und versuchte, diesen Code zu schreiben

phantomjs hello.js 

Es gibt mir den Fehler "Befehl nicht gefunden". Wie kann ich dieses Problem lösen?


Was ist die Ausgabe von whereis phatomjs?
Alex


es gibt mir "phantomjs:" Ausgabe
FURKAN ILGIN

Ich habe es versucht, es gibt mir den gleichen Fehler :(
FURKAN ILGIN

Danke, ich habe das Problem gelöst. Das Problem ist, dass ich keinen Softlink für mein Programm habe. Vielen Dank für
Ihre

Antworten:


360

Guidouils Antwort brachte mich auf den richtigen Weg. Ich musste einen zusätzlichen Symlink zu / usr / bin / hinzufügen und habe direkte Symlinks für alle 3 erstellt - siehe unten.

Ich installiere auf dem Ubuntu-Server Natty Narwhal.

Genau das habe ich getan.

cd /usr/local/share
sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2
sudo tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2
sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/share/phantomjs
sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/bin/phantomjs

Und schließlich, wenn ich es tue

phantomjs -v

Ich bekomme 1.9.7

Wenn jemand Probleme mit dem, was ich getan habe, sieht, lassen Sie es mich bitte wissen.


7
Wenn Sie diesen letzten Sym-Link benötigen, liegt dies daran, dass Sie / usr / local / bin nicht in Ihrem PATH haben
DrewB

1
Das funktioniert, aber kann mir jemand erklären, warum wir nicht einfach das Ganze kopieren und einfügen sollten, usr/binanstatt einen Link zu erstellen /usr/local?
Heisenberg

6
Wird jemandem auch die Erlaubnis verweigert?
Benutzer

1
Damit Phantomjs in jedem Verzeichnis verfügbar sind, reicht es aus, wenn Sie einem der in Ihrer $ PATH-Variablen aufgeführten Verzeichnisse einen Symlink hinzufügen. (Führen Sie "echo $ PATH" aus, um zu sehen, um welche es sich handelt).
Juampy NR

5
Ich bin auf folgendes Problem gestoßen: bin / phantomjs: Fehler beim Laden von gemeinsam genutzten Bibliotheken: libfontconfig.so.1: Datei für gemeinsam genutzte Objekte kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis. Ich habe hier eine Lösung gefunden . Führen Sie den Befehl aus:sudo apt-get install libfontconfig
Neil Hoff

110

PhantomJS ist auf npm . Sie können diesen Befehl ausführen, um ihn global zu installieren:

npm install -g phantomjs-prebuilt  

phantomjs -v sollte zurückkehren 2.1.1


6
+1 unter Ubuntu gibt dies Version 1.9.7im Gegensatz zu 1.4.0.
Opyate

1
+1 für die Verwendung, npmaber siehe meine Antwort
Fery Wardiyanto

1
Wenn bitbucket.org von Ihrem Proxy blockiert wirdnpm install phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads
79E09796

1
Unter Ubuntu 14.04 gibt mir das jetzt 2.1.1.
Joe Mornin

Unter Ubuntu 18.04 erhalte ich die Fehlermeldung, dass ich es als root ausführen soll. Damit sudofunktioniert:sudo npm install -g phantomjs-prebuilt
rubo77

58

Laden Sie das vorgefertigte Paket von der phantomjs-Website herunter: http://phantomjs.org/download.html. Öffnen Sie dann ein Terminal und wechseln Sie in den Ordner Downloads

sudo mv phantomjs-1.8.1-linux-x86_64.tar.bz2 /usr/local/share/.
cd /usr/local/share/
sudo tar xjf phantomjs-1.8.1-linux-x86_64.tar.bz2
sudo ln -s /usr/local/share/phantomjs-1.8.1-linux-x86_64 /usr/local/share/phantomjs
sudo ln -s /usr/local/share/phantomjs/bin/phantomjs /usr/local/bin/phantomjs

dann sollte zur Überprüfung die Installation phantomjs -vzurückkehren1.8.1


Warum erstellen Sie einen Link anstatt direkt zu kopieren und einzufügen?
Heisenberg

2
Warum sollten Sie Paste direkt kopieren, wenn Sie Symlink können? = /
Jared Markell

1
auf einem frischen Ubuntu auch apt-get installieren libfontconfig
Ryan Detzel

Ich hatte Phantomjs in meinem Benutzerverzeichnis installiert. Selen hat damit nicht funktioniert. Ich habe dann Phantomjs nach verschoben /usr/local/shareund diese symbolischen Links erstellt. Dann hat es funktioniert (obwohl die Dateiberechtigungen gleich waren). Kann jemand diesem Nicht-Linux-Experten erklären, warum dies einen Unterschied gemacht hat?
Peter

38

Installation vom Paketmanager:

sudo apt-get install phantomjs

2
Leider installiert dies jetzt 1.4, was so alt ist, dass viele Dinge, die phantom.js verwenden, einfach nicht funktionieren.
Julian Birch

@JulianBirch Ja, ich denke, wenn Sie in Ubuntu Saucy Salamander (13.10) haben, können Sie die Version 1.9.0 gemäß diesem [Link] launchpad.net/ubuntu/+source/phantomjs erhalten , den ich gerade von Raring Ringtail (13.04) installiert habe. und ich bekomme 1.6.0 Version, wie es auch im Link steht

3
Installiert 1.9.0 unter Ubuntu 14.04
Ionică Bizău

6
Aber ich empfehle es über zu installieren npm install -g phantomjs.
Ionică Bizău

1
Gerade installiert. Es ist jetzt 1.9.0.
Strabek

14

Hier sind die Build-Schritte, die ich verwendet habe (beachten Sie, dass diese Anweisungen für Version 1.3 gelten. Die Installationsanweisungen für das neueste PhantomJS finden Sie in den Kommentaren zu dieser Antwort):

sudo apt-get update
sudo apt-get install git-core
sudo apt-get install build-essential
sudo apt-get install libqt4-dev libqtwebkit-dev qt4-qmake
git clone git://github.com/ariya/phantomjs.git && cd phantomjs
git checkout 1.3
qmake-qt4 && make

Installieren Sie nun Xvfb

sudo apt-get install xvfb xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic

Starten Sie Xvfb:
Xvfb :23 -screen 0 1024x768x24 &

Führen Sie nun Phantom aus:
DISPLAY=:23 ./phantomjs hello.js


16
Diese Anweisungen sind jetzt veraltet. In der aktuellen Version (1.5) müssen weder qt noch xfvb installiert werden. Siehe code.google.com/p/phantomjs/wiki/Installation
michelpm

2
Michel ist richtig, die neueste Version von Phantom sollte verwendet werden, da es keine virtuelle Anzeige (Xvfb) erfordert
Vijay Boyapati

Die Antwort von Andre war für mich schneller und einfacher.
fooMonster

12

Beachten Sie bei einer PhantomJS-Version über 1.5 Folgendes (wörtliche Kopie der Build-Anweisungen auf der Phantom-Website):

Für Ubuntu Linux (getestet auf einer Barebone-Installation von Ubuntu 10.04 Lucid Lynx und Ubuntu 11.04 Natty Narwhal):

sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.7
./build.sh

3
Ich denke, es sollte beachtet werden (wie auf der PhantomJS-Website), dass das Erstellen aus dem Quellcode sehr lange dauern kann (Stunden auf einer kleinen Maschine).
Whymarrh

1
Es sollte auch beachtet werden, dass diese Antwort das Problem behoben hat, das ich mit Phantomjs hatte, als die Verwendung der vorgefertigten Binärdateien fehlschlug. Das Kompilieren auf 2 GB Ubuntu 10.04 Dual Core Virtual dauerte ungefähr 1 Stunde.
Keith John Hutchison

7

Für Ubuntu können Sie die vorgefertigten Versionen verwenden, die von der PhantomJS-Site heruntergeladen werden können .

Wenn Sie ernsthafte Zeit haben, können Sie diese auch selbst bauen . (Dies ist genau das Verfahren aus Nikhils Antwort).

Die Leute bei PhantomJS empfehlen, die Binärdateien zu verwenden, um Zeit zu sparen:

Warnung: Das Kompilieren von PhantomJS aus dem Quellcode dauert lange, hauptsächlich aufgrund von Tausenden von Dateien im WebKit-Modul. Mit 4 parallelen Kompilierungsaufträgen auf einer modernen Maschine dauert der gesamte Vorgang ungefähr 30 Minuten. Es wird dringend empfohlen, das vorgefertigte Binärpaket herunterzuladen und zu installieren, sofern es verfügbar ist.

Mit einer modernen Maschine meinen sie> 4 Kerne,> 8 GB Mem, denke ich. Ich habe es auf einer Micro-AWS-Instanz versucht und nach 2 Stunden aufgegeben.

Kurz gesagt: Installieren Sie die vorgefertigten Pakete von der PhantomJS-Site gemäß deren Anweisungen.


4

Ich persönlich benutze es lieber npm(siehe Antwort von Arnel Bucio )

sudo npm install -g phantomjs

aber! Ich habe festgestellt, dass einige npmModule es immer noch nicht als globale ausführbare Datei sehen können.

Geben Sie hier die Bildbeschreibung ein

so!

  • Erstellen Sie einen neuen /usr/share/phantomjs/Verzeichnislink

    cd /usr/share
    sudo ln -s ../lib/node_modules/phantomjs/lib/phantom phantomjs
    
  • Entfernen Sie den alten /usr/bin/phantomjsausführbaren Link und erstellen Sie den neuen

    cd /usr/bin
    sudo mv phantomjs phantomjs.old
    sudo ln -s ../share/phantomjs .
    

1
Das Ausführen der Befehle nach dem Unterbrechen für mich unter Ubuntu 14.04. Funktioniert nur mit der npmInstallation und sudo apt-get install libfontconfigdanach.
Akshat

4

in meinem vagabundierenden Bootstrap:

apt-get install -y build-essential chrpath git-core libssl-dev libfontconfig1-dev
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.9
echo y | ./build.sh
ln -s /home/vagrant/phantomjs/bin/phantomjs /usr/local/bin/phantomjs
cd ..

@artjom b: Dies wäre besser als Kommentar als als Bearbeitung. "Sie müssen nicht vergessen, die resultierende ausführbare Datei aus ./build.sh in ein Verzeichnis zu stellen, das sich in der Umgebungsvariablen PATH befindet. Dies kann wie in diesem Beispiel über symlink erfolgen."
Rev.

Sie müssen nicht vergessen, die resultierende ausführbare Datei aus ./build.sheinem Verzeichnis in der Umgebungsvariablen PATH abzulegen. Dies kann wie in diesem Beispiel über Symlink erfolgen.
Artjom B.

Das ist es, was alle anderen Antworten bei der Verwendung vergessen build.sh. Ich wollte Ihre Antwort nur verbessern, indem ich diese Tatsache sichtbarer machte. Wenn Sie es dort nicht wollen, gut.
Artjom B.

2

Ich habe damit fertig.

sudo apt-get update
sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.9
./build.sh


1

Von der offiziellen Seite: phantomjs Seite

sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.8
./build.sh

1

Laden Sie für Ubuntu die entsprechende Datei von http://phantomjs.org/download.html herunter . CD in den heruntergeladenen Ordner. Dann:

sudo tar xvf phantomjs-1.9.0-linux-x86_64.tar.bz2
sudo mv phantomjs-1.9.0-linux-x86_64 /usr/local/share/phantomjs
sudo ln -s /usr/local/share/phantomjs/bin/phantomjs /usr/bin/phantomjs

Stellen Sie sicher, dass Sie den Dateinamen in diesen Befehlen durch die heruntergeladene Datei ersetzen.


1

Beachten Sie, dass dies definitiv eine Möglichkeit ist:

$ sudo apt-get install phantomjs
$ phantomjs -v
1.6.0

Leider installiert es 1.6 und nicht das neueste, aber das funktioniert für meine Zwecke.


Dies installiert Version 1.9.0-1jetzt
Sean

1

Ich weiß, dass dies zu alt ist, aber falls jemand diese Frage jetzt von Google beantwortet, können Sie sie installieren, indem Sie apt-get install phantomjs eingeben


Es installiert X11
eozzy

0

Oder die neueste - 32-Bit-Version Linux

sudo wget http://phantomjs.googlecode.com/files/phantomjs-1.9.2-linux-i686.tar.bz2

sudo ln -s /usr/local/share/phantomjs-1.9.2-linux-i686/bin/phantomjs /usr/local/share/phantomjs

sudo ln -s /usr/local/share/phantomjs-1.9.2-linux-i686/bin/phantomjs /usr/local/bin/phantomjs

sudo ln -s /usr/local/share/phantomjs-1.9.2-linux-i686/bin/phantomjs /usr/bin/phantomjs


0

Befolgen Sie die Installationsprozedur von Julio Napurí https://gist.github.com/julionc

Version: 1.9.8

Plattform: x86_64

Installieren oder aktualisieren Sie zunächst die neueste Systemsoftware.

sudo apt-get update
sudo apt-get install build-essential chrpath libssl-dev libxft-dev

Installieren Sie diese Pakete, die PhantomJS benötigt, um ordnungsgemäß zu funktionieren.

sudo apt-get install libfreetype6 libfreetype6-dev
sudo apt-get install libfontconfig1 libfontconfig1-dev

Laden Sie es von der PhantomJS-Website herunter.

cd ~
export PHANTOM_JS="phantomjs-1.9.8-linux-x86_64"
wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2
sudo tar xvjf $PHANTOM_JS.tar.bz2

Verschieben Sie nach dem Herunterladen den Phantomjs-Ordner nach / usr / local / share / und erstellen Sie einen Symlink:

sudo mv $PHANTOM_JS /usr/local/share
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin

Jetzt sollte PhantomJS ordnungsgemäß auf Ihrem System installiert sein.

phantomjs --version

0

Ich habe diesen einfacheren Weg gefunden - Phantomabhängigkeiten + Npm

sudo apt-get update
sudo apt-get install build-essential chrpath libssl-dev libxft-dev
sudo apt-get install libfreetype6 libfreetype6-dev
sudo apt-get install libfontconfig1 libfontconfig1-dev

und npm

[sudo] npm install -g phantomjs

Getan.


0

Vergessen Sie unter Linux, hello.js auszuführen, nicht, den Pfad von hello.js hinzuzufügen:

phantomjs YourPathToPhantomjsFolder / examples / hello.js


0

Wenn Sie phantomjs einfach verwenden möchten, können Sie es unter phantomjscloud.com verwenden. Sie können das Ergebnis nur per http-Anfrage erhalten.


2
Dies war überhaupt nicht das, was das OP verlangte.
Sujal Mandal

Danke für deinen Kommentar. Es war meine Schuld
Shin Kim

0

Unter Ubuntu für Windows habe ich festgestellt, dass weder Versionen apt-getnoch npmVersionen für mich funktionieren. Was funktionierte, war das Skript aus diesem Kommentar .

Zur Vereinfachung der Verwendung habe ich das Ganze in eine Skriptdatei mit dem Namen eingefügt install_phantomjs.sh, es ausführbar gemacht ( chmod u+x install_phantomjs.sh) und dann ausgeführt ( ./install_phantomjs.sh)


0

So platziere ich eine bestimmte Version von Phantomjs in / usr / local / bin auf meinen Docker-Containern.

curl -Ls https://github.com/Medium/phantomjs/releases/download/v1.9.19/phantomjs-1.9.8-linux-x86_64.tar.bz2 \
    | tar jxvf - --strip-components=2 -C /usr/local/bin/ ./phantomjs-1.9.8-linux-x86_64/bin/phantomjs

oder ohne ./je nach Betriebssystem.

curl -Ls https://github.com/Medium/phantomjs/releases/download/v1.9.19/phantomjs-1.9.8-linux-x86_64.tar.bz2 \
    | tar jxvf - --strip-components=2 -C /usr/local/bin/ phantomjs-1.9.8-linux-x86_64/bin/phantomjs

0

Sie können ohne sudooder in Betrieb gehen npm. Einfach herunterladen , extrahieren und zum Pfad hinzufügen .

Dies hat den zusätzlichen Vorteil einer einfachen Sicherung, wenn Sie die Gewohnheit haben, Ihren gesamten Home-Ordner zu sichern, was ich sehr empfehle. Dies funktioniert auch mit jeder Linux-Version.

➤  cd ~
➤  wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
➤  mkdir phantomjs
➤  tar xjf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C phantomjs
➤  echo 'export PATH="$PATH:$HOME/phantomjs/bin"' >> .profile
➤  source .profile
➤  phantomjs -v
2.1.1

Die Nachteile sind:

  1. Sie müssen manuell aktualisieren
  2. Andere Benutzer haben keinen Zugriff darauf.

Sie können ein sehr einfaches Shell-Skript zum Installieren / Aktualisieren verwenden

#!/bin/sh
# install_phantomjs.sh $VERSION

$VERSION = $1
printf "Downloading PhantomJS $VERSION...\n"
wget "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-$VERSION-linux-x86_64.tar.bz2"

printf "Extracting PhantomJS $VERSION to ~/phantomjs...\n"
mkdir ~/phantomjs
tar xjf phantomjs-$VERSION-linux-x86_64.tar.bz2 -C ~/phantomjs

printf "Done! Make sure $HOME/phantomjs/bin is in your path.\n"

Oder in einer Docker-Datei

# Download and setup PhantomJS
ENV PHANTOMJS_VERSION 2.1.1
RUN curl -fSL "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2" -o /tmp/phantomjs.tar.bz2 && \
  mkdir ~/phantomjs && \
  tar xjf /tmp/phantomjs.tar.bz2 -C ~/phantomjs && \
  rm /tmp/phantomjs.tar.bz2
ENV PATH /home/$USERNAME/phantomjs/bin:$PATH

0

Folgendes habe ich auf meinem Ubuntu 16.04-Computer getan

sudo apt-get update
sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
sudo mv path/where/you/downloaded/phantomjs  /usr/bin

und schließlich, wenn ich es tue

phantomjs -v

Ich bekomme 2.1.1

Nach jeder Antwort dieses Threads. Ich denke, dies ist die beste Lösung für die Installation und Ausführung von Phantomjs in Ubuntu.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.