Як я можу налаштувати і запустити 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.