ฉันจะติดตั้งและรัน PhantomJS บน Ubuntu ได้อย่างไร


163

ฉันตั้งค่า PhantomJS และบันทึกลงในวิดีโอ: https://www.dailymotion.com/video/xnizmh_1_webcam

คำแนะนำการสร้าง: http://phantomjs.org/build.html

มีอะไรผิดปกติในการตั้งค่าของฉันหรือไม่?

หลังจากตั้งค่าฉันอ่านบทแนะนำการเริ่มต้นอย่างรวดเร็วและพยายามเขียนโค้ดนี้

phantomjs hello.js 

มันทำให้ฉัน "ไม่พบคำสั่ง" ข้อผิดพลาด ฉันจะแก้ปัญหานี้ได้อย่างไร


อะไรคือผลลัพธ์ของ whereis phatomjs?
Alex


มันให้ฉัน "phantomjs:" เอาท์พุท
FURKAN ILGIN

ฉันลองแล้วมันทำให้ฉันมีข้อผิดพลาดเหมือนกัน :(
FURKAN ILGIN

ขอบคุณฉันแก้ปัญหา ปัญหาคือฉันไม่มี softlink สำหรับโปรแกรมของฉัน ขอบคุณสำหรับความช่วยเหลือครับ :)
Furkan ILGIN

คำตอบ:


360

คำตอบของ Guidouil ทำให้ฉันถูกทาง ฉันต้องเพิ่ม symlink เพิ่มเติมหนึ่งรายการไปยัง / usr / bin / และฉันได้เชื่อมโยงโดยตรงกับทั้ง 3 - ดูด้านล่าง

ฉันกำลังติดตั้งบนเซิร์ฟเวอร์ Ubuntu Natty Narwhal

นี่คือสิ่งที่ฉันทำ

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

และในที่สุดเมื่อฉันทำ

phantomjs -v

ฉันได้รับ 1.9.7

หากใครเห็นปัญหากับสิ่งที่ฉันทำโปรดแจ้งให้เราทราบ


7
หากคุณต้องการลิงค์ sym สุดท้ายนั้นเป็นเพราะคุณไม่มี / usr / local / bin ใน PATH ของคุณ
DrewB

1
งานนี้ แต่ทุกคนสามารถอธิบายให้ฉันทำไมเราไม่ควรเพียงคัดลอกวางสิ่งที่ทั้งเข้าไปusr/binแทนการสร้างการเชื่อมโยงไปยัง/usr/local?
ไฮเซนเบิร์ก

6
ใครก็ตามที่ได้รับอนุญาตก็ถูกปฏิเสธเช่นกัน?
ผู้ใช้

1
เพื่อให้ phantomjs พร้อมใช้งานจากไดเรกทอรีใด ๆ ก็เพียงพอแล้วหากคุณเพิ่ม symlink ไปยังหนึ่งในไดเรกทอรีที่ระบุไว้ในตัวแปร $ PATH ของคุณ (เรียกใช้ "echo $ PATH" เพื่อดูว่าพวกเขาเป็นใคร)
Juampy NR

5
ฉันพบปัญหานี้: bin / phantomjs: ข้อผิดพลาดขณะโหลดไลบรารีที่แชร์: libfontconfig.so.1: ไม่สามารถเปิดไฟล์วัตถุที่แชร์ได้: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว ผมพบว่าการแก้ไขที่นี่ เรียกใช้คำสั่ง:sudo apt-get install libfontconfig
Neil Hoff

110

PhantomJS อยู่บนNPM คุณสามารถเรียกใช้คำสั่งนี้เพื่อติดตั้งได้ทั่วโลก:

npm install -g phantomjs-prebuilt  

phantomjs -v ควรกลับมา 2.1.1


6
+1 บน Ubuntu รุ่นนี้จะช่วยให้เมื่อเทียบกับ1.9.7 1.4.0
opyate

1
+1 สำหรับใช้npmแต่ดูคำตอบของฉัน
Fery Wardiyanto

1
ถ้า bitbucket.org ถูกบล็อกโดยพร็อกซีของคุณnpm install phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads
79E09796

1
บน Ubuntu 14.04 ตอนนี้ให้ฉัน2.1.1แล้ว
Joe Mornin

บน Ubuntu 18.04 ฉันพบข้อผิดพลาดฉันควรรันเป็น root ด้วยการsudoทำงาน:sudo npm install -g phantomjs-prebuilt
rubo77

58

ดาวน์โหลดจากเว็บไซต์ phantomjs แพ็คเกจที่สร้างไว้ล่วงหน้า: http://phantomjs.org/download.html จากนั้นเปิดเทอร์มินัลแล้วไปที่โฟลเดอร์ดาวน์โหลด

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

จากนั้นตรวจสอบการติดตั้งphantomjs -vควรกลับมา1.8.1


ทำไมคุณถึงสร้างลิงค์แทนการคัดลอกวางโดยตรง
ไฮเซนเบิร์ก

2
เหตุใดคุณจึงต้องคัดลอกวางโดยตรงเมื่อคุณสามารถเชื่อมโยงได้ = /
Jared Markell

1
บน Ubuntu ใหม่ที่ฉลาดและติดตั้ง libfontconfig
Ryan Detzel

ฉันติดตั้ง phantomjs ไว้ในไดเรกทอรีผู้ใช้ของฉัน ซีลีเนียมไม่ได้ทำงานกับสิ่งนั้น จากนั้นฉันย้าย phantomjs ไปที่/usr/local/shareและสร้างลิงก์สัญลักษณ์เหล่านี้ จากนั้นก็ใช้งานได้ (แม้ว่าการอนุญาตไฟล์จะเหมือนกัน) ใครสามารถอธิบายให้ผู้เชี่ยวชาญที่ไม่ใช่ลินุกซ์นี้ว่าทำไมถึงสร้างความแตกต่าง?
ปีเตอร์

38

ติดตั้งจากผู้จัดการแพ็คเกจ:

sudo apt-get install phantomjs

2
น่าเศร้าที่ตอนนี้ติดตั้ง 1.4 ซึ่งเก่ามากหลายอย่างที่ใช้ phantom.js ไม่ทำงาน
Julian Birch

@ JulianBirch ใช่ฉันคิดว่าถ้าคุณมีใน Ubuntu Saucy Salamander (13.10) คุณจะได้รับเวอร์ชั่น 1.9.0 ตาม [link] launchpad.net/ubuntu/+source/phantomjsฉันเพิ่งติดตั้งจาก Raring Ringtail (13.04) และฉันได้รับเวอร์ชั่น 1.6.0 เหมือนอย่างที่มันบอกในลิงค์

3
ติดตั้ง 1.9.0 บน Ubuntu 14.04
IonicăBizău

6
npm install -g phantomjsแต่ผมแนะนำให้ติดตั้งผ่านทาง
IonicăBizău

1
เพิ่งติดตั้ง ตอนนี้เป็น 1.9.0
Strabek

14

นี่คือขั้นตอนการสร้างที่ฉันใช้ (หมายเหตุคำแนะนำเหล่านี้มีไว้สำหรับรุ่น 1.3 ดูความคิดเห็นต่อคำตอบนี้สำหรับคำแนะนำในการติดตั้ง 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

ตอนนี้ติดตั้ง Xvfb

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

เปิดตัว Xvfb:
Xvfb :23 -screen 0 1024x768x24 &

ตอนนี้ใช้งาน phantom:
DISPLAY=:23 ./phantomjs hello.js


16
คำแนะนำเหล่านี้ล้าสมัยแล้วในเวอร์ชั่นปัจจุบัน (1.5) ไม่จำเป็นต้องติดตั้ง qt หรือ xfvb ดูcode.google.com/p/phantomjs/wiki/Installation
michelpm

2
Michel ถูกต้อง phantom เวอร์ชันล่าสุดควรใช้เพราะไม่จำเป็นต้องมีจอแสดงผลเสมือน (Xvfb)
Vijay Boyapati

คำตอบจาก Andre นั้นเร็วและง่ายกว่าสำหรับฉัน
fooMonster

12

สำหรับ PhantomJS เวอร์ชั่นที่สูงกว่า 1.5 ให้พิจารณาเรื่องนี้ (คำต่อคำแบบบิลด์ของคำแนะนำการสร้างบนเว็บไซต์ phantom):

สำหรับ Ubuntu Linux (ทดสอบบนการติดตั้งแบร์โบนของ Ubuntu 10.04 Lucid Lynx และ 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
ฉันคิดว่าควรสังเกต (เหมือนในเว็บไซต์ PhantomJS) ว่าการสร้างจากแหล่งข้อมูลอาจใช้เวลานานมาก (ชั่วโมงในเครื่องขนาดเล็ก)
Whymarrh

1
ควรสังเกตว่าคำตอบนี้แก้ไขปัญหาที่ฉันมีกับ phantomjs เมื่อใช้ไบนารีที่สร้างไว้ล่วงหน้าล้มเหลว ใช้เวลาประมาณ 1 ชั่วโมงในการคอมไพล์บน 2gb ubuntu 10.04 virtual core
Keith John Hutchison

7

สำหรับ Ubuntu คุณสามารถใช้สร้างไว้ล่วงหน้ารุ่นที่สามารถดาวน์โหลดได้จากเว็บไซต์ PhantomJS

หากคุณมีเวลาอยู่กับมือคุณก็สามารถสร้างมันขึ้นมาเองได้ (นี่เป็นขั้นตอนจากคำตอบของ Nikhil)

คนที่ PhantomJS แนะนำให้ใช้ไบนารีเพื่อประหยัดเวลา:

คำเตือน: การรวบรวม PhantomJS จากแหล่งข้อมูลใช้เวลานานส่วนใหญ่เนื่องจากไฟล์หลายพันไฟล์ในโมดูล WebKit ด้วยงานคอมไพล์ 4 ชุดบนเครื่องจักรที่ทันสมัยกระบวนการทั้งหมดใช้เวลาประมาณ 30 นาที แนะนำเป็นอย่างยิ่งให้ดาวน์โหลดและติดตั้งแพ็คเกจไบนารีสำเร็จรูปหากมีให้บริการ

ด้วยเครื่องจักรที่ทันสมัยพวกเขาหมายถึง> 4 คอร์> 8gb mem ฉันคิดว่า ฉันลองในอินสแตนซ์ขนาดเล็ก AWS และยอมแพ้หลังจาก 2 ชั่วโมง

กล่าวโดยย่อ: ติดตั้งแพ็คเกจที่สร้างไว้ล่วงหน้าจากไซต์ PhantomJS ตามคำแนะนำของพวกเขา


4

บุคคลที่ฉันชอบใช้npm(ดูคำตอบ Arnel Bucio )

sudo npm install -g phantomjs

แต่! ฉันสังเกตเห็นว่าบางnpmโมดูลยังไม่สามารถมองเห็นว่าเป็นปฏิบัติการระดับโลก

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้น!

  • สร้าง/usr/share/phantomjs/ลิงค์ไดเรกทอรีใหม่

    cd /usr/share
    sudo ln -s ../lib/node_modules/phantomjs/lib/phantom phantomjs
    
  • ลบ/usr/bin/phantomjsลิงค์ปฏิบัติการเก่าและสร้างใหม่

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

1
ทำคำสั่งหลังจากยากจนสำหรับฉันใน Ubuntu 14.04 ทำงานได้กับเพียงแค่การnpmติดตั้งและsudo apt-get install libfontconfigหลัง
Akshat

4

ใน 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 ..

@artjom b: นี่จะดีกว่าความคิดเห็นมากกว่าการแก้ไข "คุณไม่ต้องลืมที่จะนำไฟล์ที่เรียกทำงานได้จาก. / build.sh ไปไว้ในไดเรกทอรีที่อยู่ในตัวแปรสภาพแวดล้อมของ PATH ซึ่งสามารถทำได้ผ่าน symlink เหมือนในตัวอย่างนี้"
rev

คุณไม่จำเป็นต้องลืมใส่ไฟล์เรียกทำงานที่ได้จากการทำงาน./build.shลงในไดเร็กตอรี่ที่อยู่ในตัวแปรสภาพแวดล้อม PATH ซึ่งสามารถทำได้ผ่าน symlink ดังในตัวอย่างนี้
Artjom B.

ว่าสิ่งที่ทุกคำตอบอื่น ๆ build.shลืมเมื่อใช้ ฉันแค่ต้องการปรับปรุงคำตอบของคุณโดยทำให้ข้อเท็จจริงนั้นชัดเจนยิ่งขึ้น หากคุณไม่ต้องการที่นั่น
Artjom B.

2

ฉันทำสิ่งนี้แล้ว

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

จากเว็บไซต์อย่างเป็นทางการ: ไซต์ 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

สำหรับ Ubuntu ดาวน์โหลดไฟล์ที่เหมาะสมจากhttp://phantomjs.org/download.html ซีดีไปยังโฟลเดอร์ที่ดาวน์โหลด แล้ว:

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

ตรวจสอบให้แน่ใจว่าได้แทนที่ชื่อไฟล์ในคำสั่งเหล่านี้ด้วยไฟล์ที่คุณดาวน์โหลด


1

ระวังให้ดีนี่เป็นวิธีหนึ่งที่จะทำได้:

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

น่าเศร้าที่มันติดตั้ง 1.6 และไม่ใช่เวอร์ชั่นล่าสุด แต่ใช้งานได้ตามวัตถุประสงค์ของฉัน


รุ่นนี้ติดตั้ง1.9.0-1แล้ว
Sean

1

ฉันรู้ว่ามันเก่าเกินไป แต่ถ้าฉันมีคนถามคำถามนี้กับ Google ตอนนี้คุณสามารถติดตั้งได้โดยพิมพ์ apt-get install phantomjs


มันติดตั้ง X11
eozzy

0

หรือเวอร์ชันล่าสุด - 32 บิต 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í https://gist.github.com/julionc

รุ่น: 1.9.8

แพลตฟอร์ม: x86_64

ก่อนอื่นให้ติดตั้งหรืออัปเดตซอฟต์แวร์ระบบล่าสุด

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

ติดตั้งแพ็คเกจเหล่านี้ที่ PhantomJS ต้องการเพื่อให้ทำงานได้อย่างถูกต้อง

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

รับได้จากเว็บไซต์ 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

เมื่อดาวน์โหลดแล้วให้ย้ายโฟลเดอร์ Phantomjs ไปที่ / usr / local / share / และสร้าง symlink:

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

ตอนนี้มันควรมี PhantomJS ในระบบของคุณอย่างถูกต้อง

phantomjs --version

0

ฉันได้พบวิธีที่ง่ายกว่านี้ - การพึ่งพาผี + 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

และ npm

[sudo] npm install -g phantomjs

เสร็จสิ้น


0

บน linux เพื่อรัน hello.js อย่าลืมเพิ่ม path ของ hello.js:

phantomjs YourPathToPhantomjsFolder / samples / hello.js


0

หากคุณต้องการใช้ phantomjs อย่างง่ายดายคุณสามารถใช้งานได้ที่ phantomjscloud.com คุณสามารถรับผลลัพธ์ได้เพียงแค่ร้องขอ http


2
นี่ไม่ใช่สิ่งที่ OP ร้องขอเลย
Sujal Mandal

ขอบคุณสำหรับความคิดเห็นของคุณ. มันเป็นความผิดของฉัน
Shin Kim

0

บน Ubuntu สำหรับ Windows ผมพบว่าค่าapt-getมิได้npmรุ่นทำงานให้ฉัน สิ่งที่ใช้ได้คือสคริปต์จากความคิดเห็นนี้

เพื่อความสะดวกในการใช้งานฉันวางทุกสิ่งลงในไฟล์สคริปต์ที่เรียกว่าinstall_phantomjs.shทำให้มันเป็น executable ( chmod u+x install_phantomjs.sh) จากนั้นก็รันมัน ( ./install_phantomjs.sh)


0

นี่คือวิธีที่ฉันวาง phantomjs รุ่นเฉพาะใน / usr / local / bin บนคอนเทนเนอร์นักเทียบท่าของฉัน

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

หรือ./ขึ้นอยู่กับระบบปฏิบัติการ

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

คุณสามารถได้รับและทำงานโดยไม่ได้หรือsudo npmเพียงแค่ดาวน์โหลด , สารสกัดและเพิ่มเส้นทาง

นี่เป็นข้อดีของการสำรองข้อมูลแบบง่าย ๆหากคุณมีนิสัยในการสำรองข้อมูลโฟลเดอร์บ้านทั้งหมดของคุณซึ่งฉันขอแนะนำ สิ่งนี้ยังทำงานได้กับ 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

ข้อเสียคือ:

  1. คุณจะต้องอัพเกรดด้วยตัวเอง
  2. ผู้ใช้รายอื่นจะไม่สามารถเข้าถึงสิ่งนี้ได้

คุณสามารถใช้เชลล์สคริปต์ง่าย ๆ สำหรับการติดตั้ง / อัปเกรด

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

หรือใน 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

นี่คือสิ่งที่ฉันทำ บน 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

และในที่สุดเมื่อฉันทำ

phantomjs -v

ฉันได้รับ2.1.1

หลังจากผ่านทุกคำตอบของกระทู้นี้ ฉันคิดว่านี่เป็นทางออกที่ดีที่สุดสำหรับการติดตั้งและใช้งาน phantomjs ใน ubuntu

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.