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.