Як я можу налаштувати і запустити PhantomJS на Ubuntu?


163

Я встановив PhantomJS і записав його на відео: https://www.dailymotion.com/video/xnizmh_1_webcam

Інструкції з побудови: http://phantomjs.org/build.html

Чи є щось не так у моїй установці?

Після того як я його налаштував, я прочитав підручник із швидкого запуску і спробував написати цей код

phantomjs hello.js 

Це дає мені помилку "Команда не знайдена". Як я можу вирішити цю проблему?


що є результатом де phatomjs?
Олексій


це дасть мені "phantomjs:" вихід
FURKAN ILGIN

Я спробував це, він дає мені таку ж помилку :(
FURKAN ILGIN

дякую, я вирішив проблему. Проблема в тому, що у мене немає програмного забезпечення для моєї програми. Дякую за допомогу ур :)
FURKAN ILGIN

Відповіді:


360

Відповідь Гідуїла поставила мене на правильний шлях. Мені довелося додати ще одне додаткове посилання на / 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
якщо вам потрібна ця остання символьна посилання, це тому, що у вас немає / usr / local / bin у вашій PATH
DrewB

1
Це працює, але чи може хтось пояснити мені, чому ми не повинні просто скопіювати вставити все, usr/binа не створити посилання /usr/local?
Гейзенберг

6
Кому-небудь отримати дозвіл також відмовлено?
Користувач

1
Щоб Phantomjs був доступний у будь-якому каталозі, достатньо, якщо ви додасте симпосилання до одного з каталогів, перелічених у вашій змінній $ PATH. (запустіть "echo $ PATH", щоб побачити, що вони є).
Juampy NR

5
Я зіткнувся з цією проблемою: bin / phantomjs: помилка під час завантаження спільних бібліотек: libfontconfig.so.1: не вдається відкрити спільний файл об'єкта: такого файлу чи каталогу немає. Я знайшов виправити тут . Виконай команду:sudo apt-get install libfontconfig
Ніл Хофф

110

PhantomJS на НОМ . Ви можете запустити цю команду, щоб встановити її глобально:

npm install -g phantomjs-prebuilt  

phantomjs -v повинен повернутися 2.1.1


6
+1 на Ubuntu це дає версію 1.9.7на відміну від 1.4.0.
опіят

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.
Джо Морнін

У 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
Чому б ви скопіювали пасту безпосередньо, коли ви можете встановити посилання? = /
Джаред Маркелл

1
на свіжому ubuntu також apt-get install libfontconfig
Ryan Detzel

У мене в каталозі користувачів був встановлений phantomjs. Селен не працював з цим. Потім я перемістив Phantomjs /usr/local/shareі створив ці символічні посилання. Тоді воно працювало (навіть якщо дозволи файлів були однакові). Чи може хтось пояснити цьому нелінукс-експерту, чому це змінило значення?
Петро

38

Встановити з менеджера пакунків:

sudo apt-get install phantomjs

2
На жаль, зараз це встановлено 1.4, що настільки багато старих речей, що використання phantom.js просто не працюватиме.
Джуліан Береза

@JulianBirch Так, я думаю , що якщо у вас є в Ubuntu Зухвалий Salamander (13.10) ви можете отримати версію 1.9.0 в Відповідно до цього [посилання] launchpad.net/ubuntu/+source/phantomjs , я тільки що встановили у прагненні 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.
Страбек

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 &

Тепер запустіть фантом:
DISPLAY=:23 ./phantomjs hello.js


16
Ці інструкції тепер застаріли, у поточній версії (1.5) немає необхідності встановлювати ні qt, ні xfvb. Дивіться code.google.com/p/phantomjs/wiki/Installation
michelpm

2
Мішель вірно, слід використовувати останню версію фантома, оскільки для нього не потрібен віртуальний дисплей (Xvfb)
Vijay Boyapati

Відповідь від Андре була для мене швидшою та простішою.
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 при використанні попередньо вбудованих бінарних файлів. Щоб скласти на двоядерному двоядерному віртуальному комп'ютері ubuntu 10.04 потрібно 2 години.
Кіт Джон Хатчісон

7

Для Ubuntu ви можете використовувати попередньо вбудовані версії, які можна завантажити з сайту PhantomJS .

Якщо у вас є якийсь серйозний час на руках, ви також можете створити його самостійно . (Це саме процедура з відповіді Нікхіла).

Хлопці в PhantomJS рекомендують використовувати двійкові файли, щоб заощадити час:

Попередження: Компіляція PhantomJS з джерела займає тривалий час, головним чином завдяки тисячам файлів у модулі WebKit. Завдяки 4 паралельним завданням компіляції на сучасній машині весь процес займає приблизно 30 хвилин. Настійно рекомендується завантажити та встановити готовий бінарний пакет, якщо він є в наявності.

Під сучасною машиною вони мають на увазі> 4 ядра,> 8 Гбіт пам’яті, я думаю. Я спробував це на прикладі мікро AWS і відмовився через 2 години.

Якщо коротко: встановіть попередньо вбудовані пакети з сайту PhantomJS згідно їх інструкцій.


4

Особисто я вважаю за краще використовувати npm(див. Відповідь Арнеля Бучіо )

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після.
Акшат

4

у моїй бродячій завантажувальній машині:

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. Це можна зробити через символьну посилання, як у цьому прикладі."
rev

Вам не потрібно забувати помістити отриманий виконуваний файл ./build.shу каталог, який знаходиться в змінній середовища PATH. Це можна зробити через симпосилання, як у цьому прикладі.
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 . CD до завантаженої папки. Тоді:

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зараз
Шон

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

Нижче наведено процедуру встановлення Хуліо Напурі 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 / та створіть символьне посилання:

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

і н / хв

[sudo] npm install -g phantomjs

Зроблено.



0

Якщо ви хочете легко використовувати phantomjs, ви можете використовувати його на phantomjscloud.com. Отримати результат можна лише за допомогою http-запиту.


2
Це не те, про що взагалі просили ОП.
Sujal Mandal

Дякую за Ваш коментар Це була моя вина
Шин Кім

0

У Ubuntu для Windows я не знайшов apt-getані npmверсій, ані версій для мене. Що спрацювало, це сценарій з цього коментаря .

Для зручності використання я вставив все це у файл сценарію під назвою install_phantomjs.sh, зробив його виконуваним ( 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"

Або в докерфайлі

# 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.