Come posso configurare ed eseguire PhantomJS su Ubuntu?


163

Ho configurato PhantomJS e l'ho registrato su video: https://www.dailymotion.com/video/xnizmh_1_webcam

Istruzioni per la compilazione : http://phantomjs.org/build.html

C'è qualcosa di sbagliato nella mia configurazione?

Dopo averlo configurato, ho letto il tutorial di avvio rapido e ho provato a scrivere questo codice

phantomjs hello.js 

Mi dà l'errore "comando non trovato". Come posso risolvere questo problema?


qual è l'output di whereis phatomjs?
Alex


mi dà l'uscita "phantomjs:"
FURKAN ILGIN

l'ho provato mi dà lo stesso errore :(
FURKAN ILGIN

grazie ho risolto il problema. Il problema è che non ho softlink per il mio programma. Grazie per l'aiuto :)
FURKAN ILGIN

Risposte:


360

La risposta di Guidouil mi ha messo sulla strada giusta. Ho dovuto aggiungere un ulteriore link simbolico a / usr / bin / e ho diretto i link simbolici per tutti e 3 - vedi sotto.

Sto installando sul server Ubuntu Natty Narwhal.

Questo è esattamente quello che ho fatto.

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

E finalmente quando lo faccio

phantomjs -v

Ottengo 1.9.7

Se qualcuno vede qualche problema con quello che ho fatto, per favore fatemi sapere.


7
se hai bisogno del link sym finale è perché non hai / usr / local / bin nel tuo PERCORSO
DrewB

1
Funziona, ma qualcuno può spiegarmi perché non dovremmo semplicemente copiare e incollare l'intera cosa usr/bininvece di creare un collegamento /usr/local?
Heisenberg,

6
Qualcuno ottiene anche il permesso negato?
Utente

1
Perché i phantomjs siano disponibili da qualsiasi directory, è sufficiente aggiungere un link simbolico a una delle directory elencate nella variabile $ PATH. (esegui "echo $ PATH" per vedere quali sono).
Juampy NR,

5
Ho riscontrato questo problema: bin / phantomjs: errore durante il caricamento delle librerie condivise: libfontconfig.so.1: impossibile aprire il file oggetto condiviso: nessun file o directory. Ho trovato una soluzione qui . Esegui il comando:sudo apt-get install libfontconfig
Neil Hoff

110

PhantomJS è su npm . È possibile eseguire questo comando per installarlo a livello globale:

npm install -g phantomjs-prebuilt  

phantomjs -v dovrebbe tornare 2.1.1


6
+1 su Ubuntu fornisce la versione 1.9.7al contrario 1.4.0.
opyate

1
+1 per l'utilizzo npmma vedi la mia risposta
Fery Wardiyanto,

1
Se bitbucket.org è bloccato dal tuo proxynpm install phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads
79E09796,

1
Su Ubuntu 14.04, questo ora mi dà 2.1.1.
Joe Mornin

Su Ubuntu 18.04 ricevo un errore, che dovrei eseguirlo come root. Con sudoesso funziona:sudo npm install -g phantomjs-prebuilt
rubo77,

58

scaricare dal sito Web phantomjs il pacchetto predefinito: http://phantomjs.org/download.html quindi aprire un terminale e andare alla cartella Download

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

quindi per verificare l'installazione phantomjs -vdovrebbe tornare1.8.1


Perché crei un collegamento anziché copiare e incollare direttamente?
Heisenberg,

2
Perché dovresti copiare incolla direttamente quando puoi collegare simbolicamente? = /
Jared Markell il

1
su un nuovo Ubuntu anche apt-get install libfontconfig
Ryan Detzel,

Avevo installato phantomjs nella mia directory utente. Il selenio non ha funzionato con quello. Ho quindi spostato phantomjs /usr/local/sharee creato questi collegamenti simbolici. Quindi ha funzionato (anche se i permessi dei file erano gli stessi). Qualcuno può spiegare a questo non esperto di Linux perché questo ha fatto la differenza?
Peter,

38

Installa dal gestore pacchetti:

sudo apt-get install phantomjs

2
Purtroppo, questo ora installa 1.4, che è così vecchio che molte cose che usano phantom.js non funzioneranno.
Julian Birch,

@JulianBirch Sì, penso che se hai in Ubuntu Saucy Salamander (13.10) puoi ottenere la versione 1.9.0 secondo questo [link] launchpad.net/ubuntu/+source/phantomjs , che ho appena installato da Raring Ringtail (13.04) e ottengo la versione 1.6.0, come dice anche nel link

3
Installato 1.9.0 su Ubuntu 14.04
Ionică Bizău

6
Ma consiglio di installarlo tramite npm install -g phantomjs.
Ionică Bizău,

1
Appena installato. Adesso è la 1.9.0.
Strabek,

14

Ecco i passaggi di compilazione che ho usato (tenere presente che queste istruzioni sono per la versione 1.3. Vedere i commenti a questa risposta per le istruzioni di installazione dell'ultimo PhantomJS):

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

Ora installa Xvfb

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

Avvia Xvfb:
Xvfb :23 -screen 0 1024x768x24 &

Ora esegui phantom:
DISPLAY=:23 ./phantomjs hello.js


16
Queste istruzioni ora sono obsolete, nella versione corrente (1.5) non è necessario installare qt o xfvb. Vedi code.google.com/p/phantomjs/wiki/Installation
michelpm

2
Michel ha ragione, dovrebbe essere usata l'ultima versione di phantom perché non richiede un display virtuale (Xvfb)
Vijay Boyapati,

La risposta di Andre è stata più rapida e semplice per me.
fooMonster,

12

Per la versione PhantomJS precedente alla 1.5, considerare questo (copia integrale delle istruzioni di compilazione sul sito Web Phantom):

Per Ubuntu Linux (testato su un'installazione barebone di Ubuntu 10.04 Lucid Lynx e 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
Penso che dovrebbe essere notato (come è sul sito Web PhantomJS) che la costruzione dalla fonte può richiedere molto tempo (ore su una piccola macchina).
Whymarrh,

1
Va anche notato che questa risposta ha risolto il problema che avevo con i phantomjs quando si utilizzavano i binari predefiniti non riusciti. Ci sono voluti circa 1 ora per compilare su Ubuntu 10.04 dual core virtuale da 2 GB.
Keith John Hutchison,

7

Per Ubuntu è possibile utilizzare le versioni predefinite scaricabili dal sito PhantomJS .

Se hai del tempo serio a disposizione, puoi anche costruirlo da solo . (Questa è esattamente la procedura dalla risposta di Nikhil).

I ragazzi di PhantomJS raccomandano di usare i binari per risparmiare tempo:

Avvertenza: la compilazione di PhantomJS dal sorgente richiede molto tempo, principalmente a causa di migliaia di file nel modulo WebKit. Con 4 processi di compilazione paralleli su una macchina moderna, l'intero processo richiede circa 30 minuti. Si consiglia vivamente di scaricare e installare il pacchetto binario pronto, se disponibile.

Con una macchina moderna significano> 4 core,> mem da 8 GB credo. L'ho provato su un'istanza di micro AWS e mi sono arreso dopo 2 ore.

In breve: installare i pacchetti predefiniti dal sito PhantomJS secondo le loro istruzioni.


4

Personalmente preferisco usare npm(vedi la risposta di Arnel Bucio )

sudo npm install -g phantomjs

ma! Ho notato che alcuni dei npmmoduli non riescono ancora a vederlo come eseguibile globale.

inserisci qui la descrizione dell'immagine

così!

  • Crea un nuovo /usr/share/phantomjs/link alla directory

    cd /usr/share
    sudo ln -s ../lib/node_modules/phantomjs/lib/phantom phantomjs
    
  • Rimuovere il vecchio /usr/bin/phantomjslink eseguibile e crearne uno nuovo

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

1
Eseguire i comandi dopo lo ha rotto per me su Ubuntu 14.04. Funziona solo con l' npminstallazione e sudo apt-get install libfontconfigdopo.
Akshat,

4

nel mio bootstrap vagabondo:

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: sarebbe meglio come commento che come modifica. "Non devi dimenticare di mettere l'eseguibile risultante da ./build.sh in una directory che si trova nella variabile d'ambiente PATH. Questo può essere fatto tramite symlink come in questo esempio."
rev

Non devi dimenticare di inserire l'eseguibile risultante da ./build.shuna directory che si trova nella variabile d'ambiente PATH. Questo può essere fatto tramite symlink come in questo esempio.
Artjom B.

Questo è ciò che tutte le altre risposte dimenticano durante l'utilizzo build.sh. Volevo solo migliorare la tua risposta rendendo questo fatto più visibile. Se non lo vuoi lì, va bene.
Artjom B.

2

Ho finito con questo.

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

Dal sito ufficiale: sito phantomjs

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

Per Ubuntu, scarica il file adatto da http://phantomjs.org/download.html . CD nella cartella scaricata. Poi:

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

Assicurati di sostituire il nome del file in questi comandi con il file che hai scaricato.


1

Ricorda che questo è sicuramente un modo per farlo:

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

Purtroppo, installa 1.6 e non l'ultimo, ma funziona per i miei scopi.


Questa versione 1.9.0-1ora viene installata
Sean il

1

So che è troppo vecchio, ma, nel caso in cui qualcuno arrivi a questa domanda da Google ora, puoi installarlo digitando apt-get install phantomjs


Installa X11
eozzy l'

0

O l'ultima versione a 32 bit 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

Di seguito la procedura di installazione di Julio Napurí https://gist.github.com/julionc

Versione: 1.9.8

Piattaforma: x86_64

Innanzitutto, installa o aggiorna al software di sistema più recente.

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

Installa questi pacchetti necessari a PhantomJS per funzionare correttamente.

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

Scarica dal sito Web PhantomJS.

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

Una volta scaricato, sposta la cartella Phantomjs in / usr / local / share / e crea un link simbolico:

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

Ora, dovrebbe avere PhantomJS correttamente sul tuo sistema.

phantomjs --version

0

Ho trovato questo modo più semplice: dipendenze fantasma + 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

e npm

[sudo] npm install -g phantomjs

Fatto.


0

Su Linux per eseguire hello.js non dimenticare di aggiungere il percorso di hello.js:

phantomjs YourPathToPhantomjsFolder / samples / hello.js


0

Se vuoi usare facilmente phantomjs, puoi usarlo su phantomjscloud.com Puoi ottenere il risultato solo su richiesta http.


2
Questo non era affatto ciò che l'OP ha richiesto.
Sujal Mandal,

Grazie per il tuo commento. È stata colpa mia
Shin Kim il

0

Su Ubuntu per Windows non ho trovato apt-getnpmversioni funzionate per me. Ciò che ha funzionato è stata la sceneggiatura di questo commento .

Per facilità d'uso, ho incollato il tutto in un file di script chiamato install_phantomjs.sh, reso eseguibile ( chmod u+x install_phantomjs.sh) e quindi eseguito ( ./install_phantomjs.sh)


0

Questo è il modo in cui inserisco una versione specifica di phantomjs in / usr / local / bin sui miei contenitori docker.

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

o senza a ./seconda del sistema operativo.

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

Puoi metterti in funzione senza sudoo npm. Basta scaricare , estrarre e aggiungere al percorso .

Questo ha l'ulteriore vantaggio di un facile backup se si ha l'abitudine di eseguire il backup dell'intera cartella principale che consiglio vivamente. Funziona anche con qualsiasi versione di Linux.

➤  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

Gli svantaggi sono:

  1. Sarà necessario aggiornare manualmente
  2. Altri utenti non avranno accesso a questo.

È possibile utilizzare uno script shell molto semplice per l'installazione / l'aggiornamento

#!/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"

O in un file Docker

# 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

Ecco cosa ho fatto sulla mia macchina Ubuntu 16.04

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

e infine quando lo faccio

phantomjs -v

Ottengo 2.1.1

Dopo aver esaminato ogni risposta di questo thread. Penso che questa sia la migliore soluzione per l'installazione e l'esecuzione di phantomjs in Ubuntu.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.