Bagaimana saya bisa mengatur & menjalankan PhantomJS di Ubuntu?


163

Saya mengatur PhantomJS dan merekamnya ke video: https://www.dailymotion.com/video/xnizmh_1_webcam

Instruksi pembuatan : http://phantomjs.org/build.html

Apakah ada yang salah dalam pengaturan saya?

Setelah saya mengaturnya saya membaca tutorial memulai cepat dan mencoba untuk menulis kode ini

phantomjs hello.js 

Ini memberi saya kesalahan "perintah tidak ditemukan". Bagaimana saya bisa menyelesaikan masalah ini?


apa output dari phatomjs whereis?
Alex


itu memberi saya "phantomjs:" output
FURKAN ILGIN

saya mencobanya itu memberi saya kesalahan yang sama :(
FURKAN ILGIN

terima kasih saya memecahkan masalah. Masalahnya adalah saya tidak punya softlink untuk program saya. Terima kasih atas bantuan Anda :)
FURKAN ILGIN

Jawaban:


360

Jawaban Guidouil menempatkan saya di jalur yang benar. Saya harus menambahkan satu symlink tambahan ke / usr / bin /, dan saya melakukan symlink langsung untuk ketiga - lihat di bawah.

Saya menginstal di server Ubuntu Natty Narwhal.

Inilah yang saya lakukan.

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

Dan akhirnya ketika saya melakukannya

phantomjs -v

Saya mendapat 1.9.7

Jika ada yang melihat masalah dengan apa yang telah saya lakukan, beri tahu saya.


7
jika Anda memerlukan tautan sym terakhir, itu karena Anda tidak memiliki / usr / local / bin di PATH Anda
DrewB

1
Ini berfungsi, tetapi adakah yang bisa menjelaskan kepada saya mengapa kita tidak menyalin saja semuanya ke dalam usr/bindaripada membuat tautan /usr/local?
Heisenberg

6
Adakah yang mendapat izin juga ditolak?
Pengguna

1
Agar phantomjs tersedia dari direktori mana pun, cukup jika Anda menambahkan symlink ke salah satu direktori yang tercantum dalam variabel $ PATH Anda. (jalankan "echo $ PATH" untuk melihat mana mereka).
Juampy NR

5
Saya mengalami masalah ini: bin / phantomjs: error saat memuat pustaka bersama: libfontconfig.so.1: tidak dapat membuka file objek bersama: Tidak ada file atau direktori tersebut. Saya menemukan perbaikan di sini . Jalankan perintah:sudo apt-get install libfontconfig
Neil Hoff

110

PhantomJS aktif pada npm . Anda dapat menjalankan perintah ini untuk menginstalnya secara global:

npm install -g phantomjs-prebuilt  

phantomjs -v harus kembali 2.1.1


6
+1 di Ubuntu ini memberikan versi 1.9.7sebagai lawan 1.4.0.
Opyate

1
+1 untuk digunakan npmtetapi lihat jawaban saya
Fery Wardiyanto

1
Jika bitbucket.org diblokir oleh proxy Andanpm install phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads
79E09796

1
Di Ubuntu 14.04, ini sekarang memberi saya 2.1.1.
Joe Mornin

Di ubuntu 18.04 saya mendapatkan kesalahan, bahwa saya harus menjalankannya sebagai root. Dengan sudokerjanya:sudo npm install -g phantomjs-prebuilt
rubo77

58

unduh dari situs phantomjs paket prebuilt: http://phantomjs.org/download.html lalu buka terminal dan buka folder 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

maka untuk memeriksa instal phantomjs -vharus kembali1.8.1


Mengapa Anda membuat tautan alih-alih langsung menempel?
Heisenberg

2
Mengapa Anda menyalin secara langsung ketika Anda dapat symlink? = /
Jared Markell

1
di ubuntu baru juga apt-get install libfontconfig
Ryan Detzel

Saya memasang phantomjs di direktori pengguna saya. Selenium tidak bekerja dengan itu. Saya kemudian memindahkan phantomjs /usr/local/sharedan membuat tautan simbolik ini. Kemudian berhasil (meskipun izin file sama). Adakah yang bisa menjelaskan kepada ahli non-linux ini mengapa ini membuat perbedaan?
Peter

38

Instal dari manajer paket:

sudo apt-get install phantomjs

2
Sayangnya, ini sekarang menginstal 1.4, yang sudah sangat tua yang menggunakan phantom.js tidak akan berfungsi.
Julian Birch

@JulianBirch Ya, saya pikir jika Anda memilikinya di Ubuntu Saucy Salamander (13.10) Anda bisa mendapatkan versi 1.9.0 sesuai dengan [link] launchpad.net/ubuntu/+source/phantomjs ini , saya baru saja menginstal dari Raring Ringtail (13,04) dan saya mendapatkan versi 1.6.0, seperti juga dikatakan di tautan

3
Dipasang 1.9.0 di Ubuntu 14.04
Ionică Bizău

6
Tapi saya sarankan untuk menginstalnya via npm install -g phantomjs.
Ionică Bizău

1
Baru diinstal. Sekarang 1.9.0.
Strabek

14

Berikut adalah langkah-langkah pembuatan yang saya gunakan (perhatikan instruksi ini untuk versi 1.3. Lihat komentar untuk jawaban ini untuk instruksi instalasi PhantomJS terbaru):

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

Sekarang instal Xvfb

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

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

Sekarang jalankan phantom:
DISPLAY=:23 ./phantomjs hello.js


16
Instruksi ini sekarang sudah usang, dalam versi saat ini (1.5) tidak perlu menginstal qt atau xfvb. Lihat code.google.com/p/phantomjs/wiki/Instalasi
michelpm

2
Michel benar, versi terbaru phantom harus digunakan karena tidak memerlukan tampilan virtual (Xvfb)
Vijay Boyapati

Jawaban dari Andre lebih cepat dan mudah bagi saya.
fooMonster

12

Untuk versi PhantomJS di atas 1.5, pertimbangkan ini (salinan kata demi kata dari instruksi build di situs web phantom):

Untuk Ubuntu Linux (diuji pada instalasi barebone Ubuntu 10.04 Lucid Lynx dan 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
Saya pikir itu harus dicatat (seperti di situs PhantomJS) bahwa membangun dari sumber dapat memakan waktu yang sangat lama (berjam-jam di mesin kecil).
Whymarrh

1
Perlu juga dicatat bahwa jawaban ini menyelesaikan masalah saya dengan phantomjs ketika menggunakan binari prebuilt gagal. Butuh waktu sekitar 1 jam untuk mengkompilasi di 2gb ubuntu 10,04 dual core virtual.
Keith John Hutchison

7

Untuk Ubuntu Anda dapat menggunakan versi prebuilt yang dapat diunduh dari situs PhantomJS .

Jika Anda memiliki waktu yang serius di tangan Anda, Anda juga dapat membangunnya sendiri . (Ini persis prosedur dari jawaban Nikhil).

Orang-orang di PhantomJS merekomendasikan penggunaan binari untuk menghemat waktu:

Peringatan: Mengompilasi PhantomJS dari sumber membutuhkan waktu lama, terutama karena ribuan file dalam modul WebKit. Dengan 4 pekerjaan kompilasi paralel pada mesin modern, seluruh proses memakan waktu sekitar 30 menit. Sangat disarankan untuk mengunduh dan menginstal paket biner yang sudah jadi jika tersedia.

Dengan mesin modern yang mereka maksud> 4 core,> mem 8gb kurasa. Saya mencobanya dengan micro AWS dan menyerah setelah 2 jam.

Singkatnya: instal paket prebuilt dari situs PhantomJS sesuai instruksi mereka.


4

Personaly Saya lebih suka menggunakan npm(lihat jawaban Arnel Bucio )

sudo npm install -g phantomjs

tapi! Saya perhatikan bahwa beberapa npmmodul masih tidak dapat melihatnya sebagai executable global.

masukkan deskripsi gambar di sini

begitu!

  • Buat /usr/share/phantomjs/tautan direktori baru

    cd /usr/share
    sudo ln -s ../lib/node_modules/phantomjs/lib/phantom phantomjs
    
  • Hapus /usr/bin/phantomjstautan lama yang dapat dieksekusi dan buat yang baru

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

1
Melakukan perintah setelah memecahkannya untuk saya di Ubuntu 14.04. Bekerja hanya dengan npminstal, dan sudo apt-get install libfontconfigsetelahnya.
Akshat

4

di gelandangan bootstrap saya:

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: ini akan lebih baik sebagai komentar daripada edit. "Anda tidak harus lupa untuk menempatkan executable yang dihasilkan dari ./build.sh ke direktori yang ada dalam variabel lingkungan PATH. Ini dapat dilakukan melalui symlink seperti dalam contoh ini."
rev

Anda tidak harus lupa untuk menempatkan executable yang dihasilkan dari ./build.shke direktori yang ada di variabel lingkungan PATH. Ini dapat dilakukan melalui symlink seperti pada contoh ini.
Artjom B.

Itulah yang semua jawaban lain lupa saat menggunakan build.sh. Saya hanya ingin meningkatkan jawaban Anda dengan menjadikan fakta itu lebih terlihat. Jika Anda tidak menginginkannya di sana, baiklah.
Artjom B.

2

Saya sudah selesai dengan ini.

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

Dari situs resmi: situs 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

Untuk Ubuntu, unduh file yang sesuai dari http://phantomjs.org/download.html . CD ke folder yang diunduh. Kemudian:

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

Pastikan untuk mengganti nama file dalam perintah ini dengan file yang telah Anda unduh.


1

Sadarilah ini pasti salah satu cara untuk melakukannya:

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

Sayangnya, ini menginstal 1.6 dan bukan yang terbaru, tetapi ini berfungsi untuk tujuan saya.


Ini menginstal versi 1.9.0-1sekarang
Sean

1

Saya tahu ini terlalu lama, tapi, kalau-kalau ada orang yang mendapatkan pertanyaan ini dari Google sekarang, Anda dapat menginstalnya dengan mengetik apt-get install phantomjs



0

Atau yang terbaru - Linux versi 32bit

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 bawah prosedur instalasi oleh Julio Napurí https://gist.github.com/julionc

Versi: 1.9.8

Platform: x86_64

Pertama, instal atau perbarui ke perangkat lunak sistem terbaru.

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

Instal paket-paket ini yang dibutuhkan oleh PhantomJS untuk bekerja dengan benar.

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

Dapatkan dari situs 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

Setelah diunduh, pindahkan folder Phantomjs ke / usr / local / share / dan buat symlink:

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

Sekarang, seharusnya PhantomJS sudah benar di sistem Anda.

phantomjs --version

0

Saya telah menemukan cara yang lebih sederhana ini - dependensi Phantom + 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

dan npm

[sudo] npm install -g phantomjs

Selesai


0

Di linux untuk menjalankan hello.js jangan lupa untuk menambahkan jalur hello.js:

phantomjs YourPathToPhantomjsFolder / example / hello.js


0

Jika Anda ingin menggunakan phantomjs dengan mudah, Anda dapat menggunakannya di phantomjscloud.com. Anda bisa mendapatkan hasilnya hanya dengan permintaan http.


2
Ini sama sekali bukan yang diminta OP.
Sujal Mandal

Terima kasih atas komentarmu. Itu salah saya
Shin Kim

0

Di Ubuntu untuk Windows, saya tidak menemukan versi apt-gettidak npmberfungsi untuk saya. Apa yang berhasil adalah naskah dari komentar ini .

Untuk kemudahan penggunaan, saya menempelkan semuanya ke dalam file skrip bernama install_phantomjs.sh, membuatnya dapat dieksekusi ( chmod u+x install_phantomjs.sh), dan kemudian menjalankannya ( ./install_phantomjs.sh)


0

Ini adalah bagaimana saya menempatkan versi phantomjs tertentu di / usr / local / bin pada wadah buruh pelabuhan saya.

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

atau tanpa ./tergantung pada OS.

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

Anda dapat bangun dan berlari tanpa sudoatau npm. Cukup unduh , ekstrak , dan tambahkan ke jalur .

Ini memiliki keuntungan tambahan berupa pencadangan mudah jika Anda memiliki kebiasaan mencadangkan seluruh folder rumah yang sangat saya rekomendasikan. Ini juga berfungsi dengan semua versi 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

Kerugiannya adalah:

  1. Anda harus meningkatkan secara manual
  2. Pengguna lain tidak akan memiliki akses ke ini.

Anda dapat menggunakan skrip shell yang sangat sederhana untuk menginstal / meningkatkan

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

Atau di 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

Inilah yang saya lakukan pada mesin ubuntu 16.04 saya

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

dan akhirnya ketika saya melakukannya

phantomjs -v

Saya mendapatkan 2.1.1

Setelah melalui setiap jawaban utas ini. Saya pikir ini adalah solusi terbaik untuk menginstal dan menjalankan phantomjs di ubuntu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.