Ubuntu'da PhantomJS'yi nasıl kurabilir ve çalıştırabilirim?


163

PhantomJS'yi kurdum ve videoya kaydettim: https://www.dailymotion.com/video/xnizmh_1_webcam

Derleme talimatları: http://phantomjs.org/build.html

Kurulumumda yanlış bir şey var mı?

Kurduktan sonra hızlı başlangıç ​​eğitimini okudum ve bu kodu yazmaya çalıştım

phantomjs hello.js 

Bana "komut bulunamadı" hatası veriyor. Bu sorunu nasıl çözebilirim?


whereis phatomjs'ın çıktısı nedir?
Alex


bana "phantomjs:" çıktı verir
FURKAN ILGIN

denedim bana aynı hatayı verir :(
FURKAN ILGIN

teşekkür ederim sorunu çözdüm. Sorun ben benim program için softlink yok. Yardımın için teşekkürler :)
FURKAN ILGIN

Yanıtlar:


360

Guidouil'in cevabı beni doğru yola soktu. / Usr / bin / dizinine ek bir sembolik bağlantı eklemek zorunda kaldım ve tüm 3 için doğrudan sembolik bağlantı yaptım - aşağıya bakın.

Ubuntu sunucusu Natty Narwhal üzerine kuruluyorum.

Ben de öyle yaptım.

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

Ve sonunda yaptığım zaman

phantomjs -v

1.9.7 alıyorum

Yaptığım işte herhangi bir sorun görürse lütfen bana bildirin.


7
Eğer son sym bağlantısına ihtiyacınız varsa bunun nedeni
PATH'nizde

1
Bu işe yarıyor, ama kimse bana neden usr/binbir bağlantı oluşturmak yerine her şeyi kopyalayıp yapıştırmamalı /usr/local?
Heisenberg

6
Herkes izin verilmedi mi?
Kullanıcı

1
Phantomjs'un herhangi bir dizinden kullanılabilmesi için, $ PATH değişkeninizde listelenen dizinlerden birine bir sembolik bağlantı eklemeniz yeterlidir. (hangileri olduğunu görmek için "echo $ PATH" komutunu çalıştırın).
Juampy NR

5
Bu sorunla karşılaştım: bin / phantomjs: paylaşılan kütüphaneleri yüklerken hata: libfontconfig.so.1: paylaşılan nesne dosyasını açamıyor: Böyle bir dosya veya dizin yok. Burada bir düzeltme buldum . Komutu çalıştırın:sudo apt-get install libfontconfig
Neil Hoff

110

PhantomJS npm'de . Genel olarak yüklemek için bu komutu çalıştırabilirsiniz:

npm install -g phantomjs-prebuilt  

phantomjs -v geri dönmeli 2.1.1


6
Ubuntu'da +1, 1.9.7bunun aksine sürümü verir 1.4.0.
opyate

1
Kullanmak için +1 npmama cevabımı gör
Fery Wardiyanto

1
npm install phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads
Bitbucket.org

1
Ubuntu 14.04'te, şimdi bana veriyor 2.1.1.
Joe Mornin

Ubuntu 18.04'te root olarak çalıştırmam gereken bir hata alıyorum. İle sudo: Çalışırsudo npm install -g phantomjs-prebuilt
rubo77

58

phantomjs web sitesinden önceden oluşturulmuş paketi indirin: http://phantomjs.org/download.html sonra bir terminal açın ve İndirilenler klasörüne gidin

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

sonra yükleme kontrol phantomjs -vdönmelidir1.8.1


Neden doğrudan kopyala yapıştır yerine bir bağlantı oluşturuyorsunuz?
Heisenberg

2
Symlink yapabildiğinizde neden yapıştırmayı doğrudan kopyalıyorsunuz? = /
Jared Markell

1
taze bir ubuntu da apt-get yüklemek libfontconfig
Ryan Detzel

Kullanıcı dizinime yüklü phantomjs vardı. Selenyum bununla çalışmadı. Daha sonra phantomjs'a taşındım /usr/local/shareve bu sembolik bağlantıları oluşturdum. Sonra çalıştı (dosya izinleri aynı olmasına rağmen). Bu linux uzmanı olmayana bunun neden bir fark yarattığını kimse açıklayabilir mi?
Peter

38

Paket yöneticisinden yükle:

sudo apt-get install phantomjs

2
Ne yazık ki, bu şimdi 1.4 yükler, phantom.js kullanan çok eski şeyler işe yaramaz.
Julian Birch

@JulianBirch Evet, sanırım Ubuntu Saucy Salamander'da (13.10) bu [link] launchpad.net/ubuntu/+source/phantomjs'a göre 1.9.0 sürümünü alabilirsiniz, Raring Ringtail'den (13.04) yeni yükledim ve bağlantıda da söylediği gibi 1.6.0 sürümünü

3
Ubuntu
14.04

6
Ama üzerinden yüklemenizi tavsiye ederim npm install -g phantomjs.
Ionică Bizău

1
Yeni yüklendi. Şimdi 1.9.0.
Strabek

14

Kullandığım oluşturma adımları (bu talimatların sürüm 1.3 için olduğunu unutmayın. En son PhantomJS'nin kurulum talimatları için bu cevabın yorumlarına bakın):

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

Şimdi Xvfb'yi yükleyin

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

Xvfb'yi başlat:
Xvfb :23 -screen 0 1024x768x24 &

Şimdi hayalet çalıştırın:
DISPLAY=:23 ./phantomjs hello.js


16
Bu talimatlar artık kullanılmamaktadır, mevcut sürümde (1.5) qt veya xfvb kurulmasına gerek yoktur. Bkz code.google.com/p/phantomjs/wiki/Installation
michelpm

2
Michel doğrudur, sanal ekran gerektirmediği için fantomun en son sürümü kullanılmalıdır (Xvfb)
Vijay Boyapati

Andre'nin cevabı benim için daha hızlı ve daha kolaydı.
fooMonster

12

1.5'in üzerindeki PhantomJS sürümü için şunu düşünün (fantom web sitesindeki derleme talimatlarının aynen kopyası):

Ubuntu Linux için (Ubuntu 10.04 Lucid Lynx ve Ubuntu 11.04 Natty Narwhal'ın barebone kurulumunda test edildi):

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
Kaynaktan inşa etmenin çok uzun zaman alabileceği (küçük bir makinede saat ) olabileceği belirtilmelidir (PhantomJS web sitesinde olduğu gibi ).
Whymarrh

1
Bu cevabın, önceden oluşturulmuş ikili dosyaları kullanırken başarısız olan phantomjs ile ilgili sorunu çözdüğüne de dikkat edilmelidir. 2GB ubuntu 10.04 çift çekirdekli sanal bilgisayarda derlemek yaklaşık 1 saat sürdü.
Keith John Hutchison

7

Ubuntu için , PhantomJS sitesinden indirilebilen önceden oluşturulmuş sürümleri kullanabilirsiniz .

Ellerinizde ciddi zamanınız varsa, bunu kendiniz de yapabilirsiniz . (Bu tam olarak Nikhil'in cevabının prosedürüdür).

PhantomJS'deki adamlar zaman kazanmak için ikili dosyaları kullanmanızı önerir:

Uyarı: PhantomJS'yi kaynaktan derlemek, özellikle WebKit modülündeki binlerce dosya nedeniyle uzun zaman alıyor. Modern bir makinede 4 paralel derleme işi ile tüm süreç yaklaşık 30 dakika sürer. Varsa, hazır ikili paketi indirip kurmanız önemle tavsiye edilir.

Modern bir makine ile> 4 çekirdek,> 8gb mem demek düşünüyorum. Mikro AWS örneğinde denedim ve 2 saat sonra vazgeçtim.

Kısaca: önceden oluşturulmuş paketleri, talimatları uyarınca PhantomJS sitesinden yükleyin.


4

Kişisel olarak kullanmayı tercih ederim npm(bkz. Arnel Bucio cevabı )

sudo npm install -g phantomjs

fakat! Bazı npmmodüllerin hala global çalıştırılabilir olarak göremediğini fark ettim .

resim açıklamasını buraya girin

yani!

  • Yeni /usr/share/phantomjs/dizin bağlantısı oluştur

    cd /usr/share
    sudo ln -s ../lib/node_modules/phantomjs/lib/phantom phantomjs
    
  • Eski /usr/bin/phantomjsyürütülebilir bağlantıyı kaldırın ve yenisini oluşturun

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

1
Komutları yaptıktan sonra Ubuntu 14.04'te benim için kırdı. Sadece npmyükleme ve sudo apt-get install libfontconfigsonrası ile çalışır.
Akshat

4

benim vagrant bootstrap içinde:

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: Bu, yorum olarak bir düzenlemeden daha iyi olurdu. "./Build.sh dosyasından elde edilen yürütülebilir dosyayı PATH ortam değişkenindeki bir dizine koymayı unutmak zorunda değilsiniz. Bu, bu örnekte olduğu gibi symlink ile yapılabilir."
rev

Ortaya çıkan yürütülebilir dosyayı ./build.shPATH ortam değişkenindeki bir dizine koymayı unutmanız gerekmez . Bu, bu örnekteki gibi symlink ile yapılabilir.
Artjom B.

Kullanırken diğer tüm cevaplar unutuyor build.sh. Cevabınızı sadece bu gerçeği daha görünür hale getirerek geliştirmek istedim. Orada istemiyorsanız, iyi.
Artjom B.

2

Bunu ben yaptım.

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

Resmi siteden: phantomjs sitesi

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

Ubuntu için, uygun dosyayı http://phantomjs.org/download.html adresinden indirin . CD'yi indirilen klasöre. Sonra:

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

Bu komutlardaki dosya adını indirdiğiniz dosyayla değiştirdiğinizden emin olun.


1

Bunun kesinlikle bir yolu olduğunu unutmayın:

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

Ne yazık ki, en son sürümü değil 1.6'yı yükler, ancak bu benim amacım için çalışıyor.


Bu 1.9.0-1şimdi sürümü yükler
Sean

1

Bunun çok eski olduğunu biliyorum, ama sadece birisinin bu soruya Google'dan ulaşması durumunda, apt-get install phantomjs yazarak yükleyebilirsiniz.


X11'i
yüklüyor

0

Veya en yeni - 32 bit sürüm 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

Julio Napurí tarafından kurulum prosedürü aşağıdaki https://gist.github.com/julionc

Sürüm: 1.9.8

Platform: x86_64

İlk olarak, en son sistem yazılımını yükleyin veya güncelleyin.

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

PhantomJS'nin düzgün çalışması için gereken bu paketleri yükleyin.

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

PhantomJS web sitesinden alın.

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

İndirildikten sonra, Phantomjs klasörünü / usr / local / share / dizinine taşıyın ve bir sembolik bağlantı oluşturun:

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

Şimdi, sisteminizde PhantomJS düzgün olmalıdır.

phantomjs --version

0

Bu daha basit bir yol buldum - Phantom bağımlılıkları + 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

ve npm

[sudo] npm install -g phantomjs

Bitti.


0

Linux üzerinde hello.js dosyasını çalıştırmak için hello.js dosyasının yolunu eklemeyi unutmayın:

phantomjs YourPathToPhantomjsKlasör / örnekler / hello.js


0

Kolayca phantomjs kullanmak istiyorsanız, phantomjscloud.com adresinden kullanabilirsiniz. Sadece http isteği ile sonuç alabilirsiniz.


2
OP'nin istediği bu değildi.
Sujal Mandal

Yorumun için teşekkür ederim. Benim hatamdı
Shin Kim

0

Windows için Ubuntu'da, ne benim ne apt-getde npmsürümlerin benim için işe yaramadığını gördüm . İşe yarayan, bu yorumun senaryosuydu .

Kullanım kolaylığı için, her şeyi adlı bir komut dosyasına yapıştırdım, install_phantomjs.shyürütülebilir ( chmod u+x install_phantomjs.sh) yaptım ve sonra çalıştırdım ( ./install_phantomjs.sh)


0

Docker kaplarıma / usr / local / bin içine phantomjs'un belirli bir sürümünü böyle yerleştiriyorum.

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

veya ./işletim sistemine bağlı olarak dışarıda .

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

Veya olmadan sudoda çalışmaya başlayabilirsiniz npm. Basitçe indirin , çıkarın ve yola ekleyin .

Son derece tavsiye ettiğim tüm ana klasörünüzü yedekleme alışkanlığınız varsa , bu da kolay yedekleme avantajına sahiptir . Bu aynı zamanda Linux'un herhangi bir sürümü için de geçerlidir.

➤  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

Dezavantajları:

  1. Manuel olarak yükseltmeniz gerekecek
  2. Diğer kullanıcıların buna erişimi olmaz.

Yükleme / yükseltme için çok basit bir kabuk komut dosyası kullanabilirsiniz

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

Veya bir Dockerfile dosyasında

# 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

İşte benim ubuntu 16.04 makinemde ne yaptım

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

ve sonunda yaptığım zaman

phantomjs -v

alırım 2.1.1

Bu konunun her cevabından geçtikten sonra. Ben bu ubuntu phantomjs yüklemek ve çalıştırmak için en iyi çözüm olduğunu düşünüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.