Comment puis-je configurer et exécuter PhantomJS sur Ubuntu?


163

J'ai configuré PhantomJS et l'ai enregistré en vidéo: https://www.dailymotion.com/video/xnizmh_1_webcam

Instructions de construction: http://phantomjs.org/build.html

Y a-t-il un problème dans ma configuration?

Après l'avoir configuré, j'ai lu le tutoriel de démarrage rapide et essayé d'écrire ce code

phantomjs hello.js 

Cela me donne une erreur "commande non trouvée". Comment puis-je résoudre ce problème?


quel est le résultat de whereis phatomjs?
Alex


il me donne "phantomjs:" sortie
FURKAN ILGIN

Je l'ai essayé, cela me donne la même erreur :(
FURKAN ILGIN

merci j'ai résolu le problème. Le problème est que je n'ai pas de lien logiciel pour mon programme. Merci pour votre aide :)
FURKAN ILGIN

Réponses:


360

La réponse de Guidouil m'a mis sur la bonne voie. J'ai dû ajouter un lien symbolique supplémentaire vers / usr / bin /, et j'ai créé des liens symboliques directs pour les 3 - voir ci-dessous.

J'installe sur le serveur Ubuntu Natty Narwhal.

C'est exactement ce que j'ai fait.

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

Et enfin quand je le fais

phantomjs -v

J'obtiens 1.9.7

Si quelqu'un voit des problèmes avec ce que j'ai fait, faites-le moi savoir.


7
si vous avez besoin de ce dernier lien sym c'est parce que vous n'avez pas / usr / local / bin dans votre PATH
DrewB

1
Cela fonctionne, mais quelqu'un peut-il m'expliquer pourquoi ne devrions-nous pas simplement copier-coller le tout au usr/binlieu de créer un lien vers /usr/local?
Heisenberg

6
Quelqu'un a-t-il aussi la permission de refuser?
Utilisateur

1
Pour que phantomjs soit disponible à partir de n'importe quel répertoire, il suffit d'ajouter un lien symbolique vers l'un des répertoires répertoriés dans votre variable $ PATH. (lancez "echo $ PATH" pour voir lesquels ils sont).
Juampy NR

5
J'ai rencontré ce problème: bin / phantomjs: erreur lors du chargement des bibliothèques partagées: libfontconfig.so.1: impossible d'ouvrir le fichier objet partagé: aucun fichier ou répertoire de ce type. J'ai trouvé une solution ici . Exécutez la commande:sudo apt-get install libfontconfig
Neil Hoff

110

PhantomJS est sur npm . Vous pouvez exécuter cette commande pour l'installer globalement:

npm install -g phantomjs-prebuilt  

phantomjs -v devrait revenir 2.1.1


6
+1 sur Ubuntu, cela donne une version 1.9.7par opposition à 1.4.0.
opyate

1
+1 pour l'utilisation npmmais voir ma réponse
Fery Wardiyanto

1
Si bitbucket.org est bloqué par votre proxynpm install phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads
79E09796

1
Sur Ubuntu 14.04, cela me donne maintenant 2.1.1.
Joe Mornin le

Sur ubuntu 18.04, j'obtiens une erreur, que je devrais l'exécuter en tant que root. Avec sudoça marche:sudo npm install -g phantomjs-prebuilt
rubo77

58

télécharger depuis le site phantomjs le package pré-construit: http://phantomjs.org/download.html puis ouvrir un terminal et aller dans le dossier Téléchargements

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

puis pour vérifier l'installation phantomjs -vdevrait revenir1.8.1


Pourquoi créez-vous un lien au lieu de copier-coller directement?
Heisenberg

2
Pourquoi copier-coller directement lorsque vous pouvez créer un lien symbolique? = /
Jared Markell

1
sur un nouvel ubuntu aussi apt-get install libfontconfig
Ryan Detzel

J'ai installé phantomjs dans mon répertoire utilisateur. Le sélénium ne fonctionnait pas avec ça. J'ai ensuite déplacé phantomjs /usr/local/shareet créé ces liens symboliques. Ensuite, cela a fonctionné (même si les autorisations de fichier étaient les mêmes). Quelqu'un peut-il expliquer à ce non-expert Linux pourquoi cela a fait une différence?
Peter

38

Installer à partir du gestionnaire de packages:

sudo apt-get install phantomjs

2
Malheureusement, cela installe maintenant 1.4, qui est tellement vieux que beaucoup de choses qui utilisent phantom.js ne fonctionneront tout simplement pas.
Julian Birch

@JulianBirch Oui, je pense que si vous avez dans Ubuntu Saucy Salamander (13.10), vous pouvez obtenir la version 1.9.0 selon ce [lien] launchpad.net/ubuntu/+source/phantomjs , je viens de l'installer à partir de Raring Ringtail (13.04) et j'obtiens la version 1.6.0, comme on le dit aussi dans le lien

3
Installé 1.9.0 sur Ubuntu 14.04
Ionică Bizău

6
Mais je recommande de l'installer via npm install -g phantomjs.
Ionică Bizău

1
Juste installé. C'est la 1.9.0 maintenant.
Strabek

14

Voici les étapes de construction que j'ai utilisées (notez que ces instructions concernent la version 1.3. Voir les commentaires de cette réponse pour les instructions d'installation du dernier 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

Maintenant, installez Xvfb

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

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

Maintenant, lancez phantom:
DISPLAY=:23 ./phantomjs hello.js


16
Ces instructions sont maintenant obsolètes, dans la version actuelle (1.5) il n'est pas nécessaire d'installer ni qt ni xfvb. Voir code.google.com/p/phantomjs/wiki/Installation
michelpm

2
Michel a raison, la dernière version de phantom devrait être utilisée car elle ne nécessite pas d'affichage virtuel (Xvfb)
Vijay Boyapati

La réponse d'André a été plus rapide et plus facile pour moi.
fooMonster

12

Pour la version PhantomJS ci-dessus 1.5, considérez ceci (copie textuelle des instructions de construction sur le site Web fantôme):

Pour Ubuntu Linux (testé sur une installation barebone d'Ubuntu 10.04 Lucid Lynx et 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
Je pense qu'il convient de noter (comme c'est le cas sur le site Web de PhantomJS) que la construction à partir de la source peut prendre très longtemps (des heures sur une petite machine).
Whymarrh

1
Il convient également de noter que cette réponse a résolu le problème que j'avais avec phantomjs lorsque l'utilisation des binaires prédéfinis a échoué. Il a fallu environ 1 heure pour compiler sur 2 Go ubuntu 10.04 dual core virtual.
Keith John Hutchison

7

Pour Ubuntu, vous pouvez utiliser les versions préconstruites téléchargeables depuis le site PhantomJS .

Si vous avez du temps à consacrer, vous pouvez également le construire vous-même . (C'est exactement la procédure de la réponse de Nikhil).

Les gars de PhantomJS recommandent d'utiliser les binaires pour gagner du temps:

Attention: la compilation de PhantomJS à partir des sources prend beaucoup de temps, principalement en raison des milliers de fichiers dans le module WebKit. Avec 4 tâches de compilation parallèles sur une machine moderne, l'ensemble du processus prend environ 30 minutes. Il est fortement recommandé de télécharger et d'installer le package binaire prêt à l'emploi s'il est disponible.

Avec une machine moderne, cela signifie> 4 cœurs,> 8 Go de mémoire je pense. Je l'ai essayé sur une instance micro AWS et j'ai abandonné après 2 heures.

En bref: installez les packages préconstruits à partir du site PhantomJS selon leurs instructions.


4

Personnellement je préfère utiliser npm(voir la réponse d'Arnel Bucio )

sudo npm install -g phantomjs

mais! J'ai remarqué que certains npmmodules ne peuvent toujours pas le voir comme exécutable global.

entrez la description de l'image ici

alors!

  • Créer un nouveau /usr/share/phantomjs/lien de répertoire

    cd /usr/share
    sudo ln -s ../lib/node_modules/phantomjs/lib/phantom phantomjs
    
  • Supprimer l'ancien /usr/bin/phantomjslien exécutable et créer le nouveau

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

1
Faire les commandes après l'avoir cassé pour moi sur Ubuntu 14.04. Fonctionne uniquement avec l' npminstallation, et sudo apt-get install libfontconfigaprès.
Akshat

4

dans mon bootstrap vagabond:

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: ce serait mieux comme commentaire qu'une modification. "Vous ne devez pas oublier de placer l'exécutable résultant de ./build.sh dans un répertoire qui se trouve dans la variable d'environnement PATH. Cela peut être fait via un lien symbolique comme dans cet exemple."
rev

Vous ne devez pas oublier de placer l'exécutable résultant de ./build.shdans un répertoire qui se trouve dans la variable d'environnement PATH. Cela peut être fait via un lien symbolique comme dans cet exemple.
Artjom B.

C'est ce que toutes les autres réponses oublient lors de l'utilisation build.sh. Je voulais seulement améliorer votre réponse en rendant ce fait plus visible. Si vous ne le voulez pas là-bas, très bien.
Artjom B.

2

J'ai fini avec ça.

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

Depuis le site officiel: site 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

Pour Ubuntu, téléchargez le fichier approprié à partir de http://phantomjs.org/download.html . CD dans le dossier téléchargé. Ensuite:

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

Assurez-vous de remplacer le nom de fichier dans ces commandes par le fichier que vous avez téléchargé.


1

Sachez que c'est certainement une façon de le faire:

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

Malheureusement, il installe la version 1.6 et non la dernière, mais cela fonctionne pour mes besoins.


Cette version installe 1.9.0-1maintenant
Sean

1

Je sais que c'est trop ancien, mais, au cas où quelqu'un répondrait à cette question de Google maintenant, vous pouvez l'installer en tapant apt-get install phantomjs


Il installe X11
eozzy

0

Ou la dernière - version 32 bits 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

Ci-dessous la procédure d'installation par Julio Napurí https://gist.github.com/julionc

La dernière version: 1.9.8

Plate-forme: x86_64

Tout d'abord, installez ou mettez à jour le dernier logiciel système.

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

Installez ces packages nécessaires à PhantomJS pour fonctionner correctement.

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

Obtenez-le sur le site Web de 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

Une fois téléchargé, déplacez le dossier Phantomjs vers / usr / local / share / et créez un lien symbolique:

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

Maintenant, PhantomJS devrait être correctement installé sur votre système.

phantomjs --version

0

J'ai trouvé ce moyen plus simple - Dépendances fantômes + 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

et npm

[sudo] npm install -g phantomjs

Terminé.


0

Sur Linux pour exécuter hello.js, n'oubliez pas d'ajouter le chemin de hello.js:

phantomjs YourPathToPhantomjsFolder / examples / hello.js


0

Si vous souhaitez utiliser phantomjs facilement, vous pouvez l'utiliser sur phantomjscloud.com Vous pouvez obtenir le résultat simplement par requête http.


2
Ce n'était pas du tout ce que le PO demandait.
Sujal Mandal

Merci pour votre commentaire. C'était ma faute
Shin Kim

0

Sur Ubuntu pour Windows, je n'ai trouvé que apt-getni les npmversions ne fonctionnaient pour moi. Ce qui a fonctionné, c'est le script de ce commentaire .

Pour faciliter l'utilisation, j'ai collé le tout dans un fichier de script appelé, je l'ai install_phantomjs.shrendu exécutable ( chmod u+x install_phantomjs.sh), puis je l'ai exécuté ( ./install_phantomjs.sh)


0

C'est ainsi que je place une version spécifique de phantomjs dans / usr / local / bin sur mes conteneurs 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

ou sans ./dépendant du système d'exploitation.

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

Vous pouvez être opérationnel sans sudoou npm. Téléchargez , extrayez et ajoutez simplement au chemin .

Cela a l'avantage supplémentaire d' une sauvegarde facile si vous avez l'habitude de sauvegarder l'intégralité de votre dossier de départ, ce que je recommande vivement. Cela fonctionne également avec n'importe quelle version de 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

Les inconvénients sont:

  1. Vous devrez mettre à jour manuellement
  2. Les autres utilisateurs n'y auront pas accès.

Vous pouvez utiliser un script shell très simple pour l'installation / la mise à niveau

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

Ou dans un Dockerfile

# 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

Voici ce que j'ai fait sur ma machine 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

et enfin quand je fais

phantomjs -v

Je reçois 2.1.1

Après avoir parcouru toutes les réponses de ce fil. Je pense que c'est la meilleure solution pour installer et exécuter phantomjs dans ubuntu.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.