Como posso configurar e executar o PhantomJS no Ubuntu?

163

Configurei o PhantomJS e gravei-o em vídeo: https://www.dailymotion.com/video/xnizmh_1_webcam

Instruções de construção: http://phantomjs.org/build.html

Há algo de errado na minha configuração?

Depois de configurá-lo, li o tutorial de início rápido e tentei escrever esse código

phantomjs hello.js 

Isso me dá o erro "comando não encontrado". Como posso resolver este problema?

FURKAN ILGIN
fonte
qual é o resultado de whereis phatomjs?
Alex
ele me deu "phantomjs:" output
FURKAN ILGIN
Eu tentei isso me dá o mesmo erro :(
FURKAN ILGIN
obrigado eu resolvi o problema. O problema é que não tenho softlink para o meu programa. Obrigado pela ajuda :)
FURKAN ILGIN

Respostas:

360

A resposta de Guidouil me colocou no caminho certo. Eu tive que adicionar um link simbólico adicional para / usr / bin / e direcionei links simbólicos para todos os 3 - veja abaixo.

Estou instalando no servidor Ubuntu Natty Narwhal.

Foi exatamente o que eu fiz.

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 eu faço

phantomjs -v

Eu recebo 1.9.7

Se alguém encontrar algum problema com o que eu fiz, entre em contato.

Shawn
fonte
7
se você precisar que elo final sym é porque você não tem / usr / / bin local em seu PATH
DrewB
1
Isso funciona, mas alguém pode me explicar por que não devemos copiar e colar a coisa toda em usr/binvez de criar um link para /usr/local?
21413 Heisenberg
6
Alguém também recebeu permissão negada?
Usuário
1
Para que o phantomjs esteja disponível em qualquer diretório, basta adicionar um link simbólico a um dos diretórios listados na sua variável $ PATH. (execute "echo $ PATH" para ver quais são).
Juampy NR
5
Corri para este problema: bin / phantomjs: erro ao carregar bibliotecas compartilhadas: libfontconfig.so.1: não é possível abrir o arquivo de objeto compartilhado: Esse arquivo ou diretório não existe. Encontrei uma correção aqui . Execute o comando:sudo apt-get install libfontconfig
Neil Hoff
110

O PhantomJS está ativado . Você pode executar este comando para instalá-lo globalmente:

npm install -g phantomjs-prebuilt  

phantomjs -v deve retornar 2.1.1

Arnel Bucio
fonte
6
+1 no Ubuntu fornece a versão 1.9.7em oposição a 1.4.0.
usar o seguinte comando
1
+1 para usar npm, mas ver a minha resposta
Fery Wardiyanto
1
Se bitbucket.org estiver bloqueado pelo seu proxynpm install phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads
79E09796 26/11
1
No Ubuntu 14.04, isso agora me dá 2.1.1.
Joe Mor
No ubuntu 18.04, recebo um erro, que devo executá-lo como root. Com sudoele funciona:sudo npm install -g phantomjs-prebuilt
rubo77
58

faça o download no site phantomjs do pacote pré-criado: http://phantomjs.org/download.html , abra um terminal e vá para a pasta 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

para verificar a instalação phantomjs -vdeve retornar1.8.1

Guidouil
fonte
Por que você cria um link em vez de copiar e colar diretamente?
precisa
2
Por que você copia a pasta diretamente quando pode fazer o link simbólico? = /
Jared Markell
1
em um ubuntu fresco também apt-get install libfontconfig
Ryan Detzel
Eu tinha phantomjs instalados no meu diretório de usuários. Selenium não funcionou com isso. Então mudei o phantomjs para /usr/local/sharee criei esses links simbólicos. Então funcionou (mesmo que as permissões de arquivo sejam as mesmas). Alguém pode explicar a esse especialista não-linux por que isso fez a diferença?
Peter
38

Instale a partir do gerenciador de pacotes:

sudo apt-get install phantomjs

fonte
2
Infelizmente, isso agora instala o 1.4, que é tão antigo que muitas coisas que usam o phantom.js simplesmente não funcionam.
Julian Birch
@JulianBirch Sim, acho que se você tiver o Ubuntu Saucy Salamander (13.10), poderá obter a versão 1.9.0 de acordo com este [link] launchpad.net/ubuntu/+source/phantomjs , acabei de instalar a partir do Raring Ringtail (13.04) e recebo a versão 1.6.0, como também
3
Instalado 1.9.0 no Ubuntu 14.04
Ionică Bizău
6
Mas eu recomendo instalá-lo via npm install -g phantomjs.
Jonic Biz
1
Apenas instalado. Agora é 1.9.0.
Strabek
14

Aqui estão as etapas de compilação que eu usei (observe que estas instruções são para a versão 1.3. Consulte os comentários nesta resposta para obter as instruções de instalação do PhantomJS mais recente):

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

Agora instale o Xvfb

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

Inicie o Xvfb:
Xvfb :23 -screen 0 1024x768x24 &

Agora execute o fantasma:
DISPLAY=:23 ./phantomjs hello.js

Vijay Boyapati
fonte
16
Essas instruções agora estão obsoletas, na versão atual (1.5) não há necessidade de instalar qt ou xfvb. Consulte code.google.com/p/phantomjs/wiki/Installation
michelpm
2
Michel está correta, a última versão do fantasma deve ser usado porque ele não requer uma exposição virtual (Xvfb)
Vijay Boyapati
A resposta de Andre foi mais rápida e fácil para mim.
fooMonster
12

Para a versão PhantomJS acima de 1.5, considere isso (cópia literal das instruções de compilação no site phantom):

Para o Ubuntu Linux (testado em uma instalação básica do 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
NBK
fonte
3
Eu acho que deve ser observado (como no site do PhantomJS) que a criação a partir da fonte pode demorar muito tempo (horas em uma máquina pequena).
Whymarrh
1
Observe também que essa resposta resolveu o problema que tive com os phantomjs ao usar os binários pré-criados com falha. Demorou cerca de 1 hora para compilar no ubuntu 10.04 dual core virtual de 2 gb.
Keith John Hutchison
7

Para o Ubuntu, você pode usar as versões pré-construídas para download no site PhantomJS .

Se você tiver algum tempo sério em suas mãos, também poderá construí-lo . (Este é exatamente o procedimento da resposta de Nikhil).

Os funcionários do PhantomJS recomendam o uso dos binários para economizar tempo:

Aviso: A compilação do PhantomJS a partir da origem leva muito tempo, principalmente devido a milhares de arquivos no módulo WebKit. Com 4 trabalhos de compilação paralela em uma máquina moderna, todo o processo leva aproximadamente 30 minutos. É altamente recomendável baixar e instalar o pacote binário pronto, se estiver disponível.

Com uma máquina moderna, eles significam> 4 núcleos,> 8 GB de memória, eu acho. Eu tentei em uma instância micro da AWS e desisti após 2 horas.

Resumindo: instale os pacotes pré-criados no site do PhantomJS de acordo com as instruções.

iwein
fonte
4

Pessoalmente, prefiro usar npm(consulte a resposta de Arnel Bucio )

sudo npm install -g phantomjs

mas! Notei que alguns dos npmmódulos ainda não podem vê-lo como executável global.

insira a descrição da imagem aqui

tão!

  • Criar novo /usr/share/phantomjs/link de diretório

    cd /usr/share
    sudo ln -s ../lib/node_modules/phantomjs/lib/phantom phantomjs
    
  • Remova /usr/bin/phantomjso link executável antigo e crie o novo

    cd /usr/bin
    sudo mv phantomjs phantomjs.old
    sudo ln -s ../share/phantomjs .
    
Fery Wardiyanto
fonte
1
Executar os comandos depois quebrou para mim no Ubuntu 14.04. Funciona apenas com a npminstalação e sudo apt-get install libfontconfigdepois.
Akshat
4

no meu vagrant 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 ..
rev
fonte
@artjom b: isso seria melhor como comentário do que como edição. "Você não precisa esquecer de colocar o executável resultante de ./build.sh em um diretório que esteja na variável de ambiente PATH. Isso pode ser feito via link simbólico, como neste exemplo."
rev
Você não precisa esquecer de colocar o executável resultante ./build.shem um diretório que esteja na variável de ambiente PATH. Isso pode ser feito via link simbólico, como neste exemplo.
Artjom B.
É isso que todas as outras respostas esquecem ao usar build.sh. Eu só queria melhorar sua resposta, tornando esse fato mais visível. Se você não quiser, tudo bem.
Artjom B.
2

Eu já fiz isso.

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
Amar Banerjee
fonte
1

Do site oficial: 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
Igor Shubin
fonte
1

Para o Ubuntu, baixe o arquivo adequado em http://phantomjs.org/download.html . CD para a pasta baixada. Então:

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

Certifique-se de substituir o nome do arquivo nesses comandos pelo arquivo que você baixou.

Zumbido
fonte
1

Esteja ciente de que essa é definitivamente uma maneira de fazê-lo:

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

Infelizmente, ele instala o 1.6 e não o mais recente, mas funciona para os meus propósitos.

Starkers
fonte
Isso instala versão 1.9.0-1agora
Sean
1

Sei que isso é muito antigo, mas caso alguém chegue a essa pergunta do Google agora, você pode instalá-lo digitando apt-get install phantomjs

Nico Savini
fonte
Ele instala o X11
eozzy 11/11/16
0

Ou o mais recente - versão 32bit 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
Nesha Zoric
fonte
0

Abaixo o procedimento de instalação de Julio Napurí https://gist.github.com/julionc

Versão: 1.9.8

Plataforma: x86_64

Primeiro, instale ou atualize para o software mais recente do sistema.

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

Instale esses pacotes necessários ao PhantomJS para funcionar corretamente.

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

Obtê-lo no site 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

Após o download, mova a pasta Phantomjs para / usr / local / share / e crie um link simbólico:

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

Agora, ele deve ter o PhantomJS corretamente no seu sistema.

phantomjs --version
PYK
fonte
0

Eu achei essa maneira mais simples - Dependências fantasmas + 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

Feito.

Nitin Jadhav
fonte
0

No linux, para executar o hello.js, não se esqueça de adicionar o caminho do hello.js:

phantomjs YourPathToPhantomjsFolder / examples / hello.js

Mr Rubix
fonte
0

Se você deseja usar o phantomjs facilmente, pode usá-lo em phantomjscloud.com. Você pode obter o resultado apenas por solicitação http.

Shin Kim
fonte
2
Não foi isso que o OP pediu.
Sujal Mandal
Obrigado pelo seu comentário. A culpa foi minha
Shin Kim
0

No Ubuntu para Windows, achei que apt-getnem as npmversões funcionavam para mim. O que funcionou foi o script deste comentário .

Para facilitar o uso, colei tudo em um arquivo de script chamado install_phantomjs.sh, o tornei executável ( chmod u+x install_phantomjs.sh) e o executei ( ./install_phantomjs.sh)

Nick F
fonte
0

É assim que coloco uma versão específica do phantomjs em / usr / local / bin nos contêineres do 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 sem, ./dependendo do SO.

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
MrAirikr
fonte
0

Você pode começar a funcionar sem sudoou npm. Basta baixar , extrair e adicionar ao caminho .

Isso tem a vantagem adicional de backup fácil, se você costuma fazer backup de toda a pasta pessoal, que eu recomendo. Isso também funciona com qualquer versão do 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

As desvantagens são:

  1. Você precisará atualizar manualmente
  2. Outros usuários não terão acesso a isso.

Você pode usar um script shell muito simples para instalar / atualizar

#!/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 em um arquivo 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
HarlemSquirrel
fonte
0

Aqui está o que eu fiz na minha máquina 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 finalmente quando eu faço

phantomjs -v

Eu recebo 2.1.1

Depois de passar por todas as respostas deste tópico. Eu acho que esta é a melhor solução para instalar e executar phantomjs no ubuntu.

aakrshak_
fonte