Как я могу настроить и запустить PhantomJS в Ubuntu?

Я установил PhantomJS и записал его на видео: https://www.dailymotion.com/video/xnizmh

phantomjs hello.js 
webcam

Инструкции по сборке: http://phantomjs.org/build.html

Что-то не так с моей настройкой?

После настройки я прочитал краткое руководство по началу работы и попытался написать этот код.

phantomjs hello.js 

Это дает мне ошибку «команда не найдена». Как я могу решить эту проблему?


person FURKAN ILGIN    schedule 08.01.2012    source источник
comment
какой вывод whereis phatomjs?   -  person Alex    schedule 08.01.2012
comment
Попробуйте этот ответ stackoverflow.com/questions/6448459/phantomjs-not-working   -  person Alex    schedule 08.01.2012
comment
это дает мне phantomjs: output   -  person FURKAN ILGIN    schedule 08.01.2012
comment
я пробовал это дает мне ту же ошибку :(   -  person FURKAN ILGIN    schedule 08.01.2012
comment
спасибо я решил проблему. Проблема в том, что у меня нет софтлинка для моей программы. Спасибо за помощь :)   -  person FURKAN ILGIN    schedule 08.01.2012
comment
vultr.com/docs/how-to- установить-phantomjs-on-ubuntu-16-04   -  person Stack Underflow    schedule 13.09.2019


Ответы (25)


Ответ Гвидуя направил меня на верный путь. Мне пришлось добавить одну дополнительную символическую ссылку в / usr / bin /, и я сделал прямые символические ссылки для всех трех - см. Ниже.

Устанавливаю на сервер Ubuntu Натти Нарвал.

Это именно то, что я сделал.

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

Если кто-нибудь увидит какие-либо проблемы с тем, что я сделал, дайте мне знать.

person shawn    schedule 10.01.2013
comment
если вам нужна последняя символическая ссылка, это потому, что у вас нет / usr / local / bin в вашем PATH - person DrewB; 11.01.2013
comment
Я получаю ошибку при выполнении этой команды sudo ln -s /usr/local/share/phantomjs-1.8.1-linux-x86_64/bin/phantomjs / usr / local / bin / phantomjs ln: создание символической ссылки `/ usr / local / bin / phantomjs ': нет такого файла или каталога - person Amar Banerjee; 10.06.2013
comment
Пожалуйста, проверьте перед загрузкой tar-файла через терминал: uname -i - person Shakil; 10.07.2013
comment
@AmarBanerjee вам нужно использовать sudo перед предыдущим и при разворачивании tar-шара. - person Shane; 03.08.2013
comment
Это работает, но может ли кто-нибудь объяснить мне, почему мы не должны просто скопировать и вставить все это в usr/bin вместо создания ссылки на /usr/local? - person Heisenberg; 02.11.2013
comment
Кому-нибудь тоже отказано в разрешении? - person User; 01.03.2014
comment
Спасибо за эту ссылку на предварительную сборку, так как я не могу получить ее для сборки на Ubuntu - person tristanbailey; 24.03.2014
comment
Чтобы phantomjs был доступен из любого каталога, достаточно добавить символическую ссылку на один из каталогов, перечисленных в вашей переменной $ PATH. (запустите echo $ PATH, чтобы узнать, какие они есть). - person Juampy NR; 24.03.2014
comment
Я столкнулся с этой проблемой: bin / phantomjs: ошибка при загрузке общих библиотек: libfontconfig.so.1: не удается открыть файл общих объектов: нет такого файла или каталога. Я нашел исправление здесь. Выполните команду: sudo apt-get install libfontconfig - person Neil Hoff; 14.04.2014
comment
Хороший ответ, дружище. Я знал это, но не осмеливался сделать это. Ваш ответ воодушевляет меня, и он продолжается. - person kta; 01.06.2016
comment
Я поместил эти команды на этапах сборки CI. Они работали нормально ... пока сервер CI не начал получать ошибку 403 от bitbucket.org. (Я предполагаю, что это ограничение скорости.) Итак, я нашел этот пост SO и изменил URL-адрес на https://cnpmjs.org/mirrors/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2. - person Jeff Terrell Ph.D.; 21.03.2017
comment
не могли бы вы проверить это тоже stackoverflow.com/questions/44624964 / phantom-js-on-web-project - person Manik; 19.06.2017

PhantomJS находится на npm. Вы можете запустить эту команду, чтобы установить его глобально:

npm install -g phantomjs-prebuilt  

phantomjs -v должен вернуть 2.1.1

person Arnel Bucio    schedule 20.03.2014
comment
+1 в Ubuntu это дает версию 1.9.7 вместо 1.4.0. - person opyate; 29.04.2014
comment
+1 за использование npm, но см. мой ответ - person Fery W; 21.09.2014
comment
Если bitbucket.org заблокирован вашим прокси npm install phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads - person 79E09796; 26.11.2015
comment
В Ubuntu 14.04 это теперь дает мне 2.1.1. - person Joe Mornin; 02.04.2016
comment
В ubuntu 18.04 я получаю сообщение об ошибке, и мне нужно запустить его как root. С sudo работает: sudo npm install -g phantomjs-prebuilt - person rubo77; 24.07.2018

загрузите с веб-сайта 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

person Guidouil    schedule 10.01.2013
comment
Почему вы создаете ссылку, а не копируете напрямую? - person Heisenberg; 02.11.2013
comment
Зачем копировать вставку напрямую, если можно использовать символическую ссылку? знак равно - person jmar; 23.04.2014
comment
на свежем ubuntu также apt-get install libfontconfig - person Ryan Detzel; 05.09.2014
comment
В моем пользовательском каталоге были установлены фантомы. Selenium с этим не работал. Затем я переместил phantomjs в /usr/local/share и создал эти символические ссылки. Затем это сработало (хотя права доступа к файлам были такими же). Может ли кто-нибудь объяснить этому не эксперту по Linux, почему это имело значение? - person Peter; 17.05.2017

Установить из диспетчера пакетов:

sudo apt-get install phantomjs
person Community    schedule 27.12.2012
comment
К сожалению, теперь устанавливается версия 1.4, которая настолько устарела, что многие вещи, использующие phantom.js, просто не будут работать. - person Julian Birch; 29.07.2013
comment
@JulianBirch Да, я думаю, что если у вас есть Ubuntu Saucy Salamander (13.10), вы можете получить версию 1.9.0 по этой [ссылке] launchpad.net/ubuntu/+source/phantomjs, я только что установил из Raring Ringtail (13.04) и получаю версию 1.6.0, как и сказано в ссылке - person ; 30.07.2013
comment
Установлен 1.9.0 на Ubuntu 14.04 - person Ionică Bizău; 19.06.2014
comment
Но я рекомендую установить его через npm install -g phantomjs. - person Ionică Bizău; 19.06.2014
comment
Только что установил. Сейчас это 1.9.0. - person Strabek; 15.11.2015

Вот шаги сборки, которые я использовал (обратите внимание, что эти инструкции относятся к версии 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

person Vijay Boyapati    schedule 12.02.2012
comment
Эти инструкции устарели, в текущей версии (1.5) нет необходимости устанавливать ни qt, ни xfvb. См. code.google.com/p/phantomjs/wiki/Installation. - person michelpm; 05.06.2012
comment
Мишель прав, следует использовать последнюю версию фантома, потому что она не требует виртуального дисплея (Xvfb) - person Vijay Boyapati; 28.09.2012
comment
Ответ от Андре был для меня быстрее и проще. - person fooMonster; 23.04.2013

Для версии PhantomJS выше 1.5 учтите это (дословная копия инструкций по сборке на фантомном веб-сайте):

Для 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
person N.B.K    schedule 28.09.2012
comment
Я думаю, следует отметить (как и на веб-сайте PhantomJS), что сборка из исходного кода может занять очень долгое время (часы на маленькой машине). - person Whymarrh; 20.02.2014
comment
Следует также отметить, что этот ответ решил проблему, с которой я столкнулся с phantomjs при сбое использования предварительно созданных двоичных файлов. Компиляция на двухъядерном виртуальном Ubuntu 10.04 объемом 2 ГБ заняла около 1 часа. - person Keith John Hutchison; 02.05.2015

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

Если у вас есть серьезные дела, вы также можете создать его самостоятельно. (Это в точности процедура из ответа Нихила).

Ребята из PhantomJS рекомендуют использовать двоичные файлы для экономии времени:

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

На современной машине они означают> 4 ядра, думаю,> 8 ГБ памяти. Я попробовал это на экземпляре micro AWS и отказался через 2 часа.

Вкратце: установите предварительно созданные пакеты с сайта PhantomJS в соответствии с их инструкциями.

person iwein    schedule 03.11.2012

Лично я предпочитаю использовать npm (см. ответ Arnel Bucio)

sudo npm install -g phantomjs

но! Я заметил, что некоторые из модулей npm по-прежнему не могут рассматривать его как глобальный исполняемый файл.

введите описание изображения здесь

so!

  • Создать новую /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 .
    
person Fery W    schedule 20.09.2014
comment
Выполнение команд после того, как я сломал его на Ubuntu 14.04. Работает только с npm установкой и sudo apt-get install libfontconfig после нее. - person Tarang; 19.10.2014

в моем бродячем бутстрапе:

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 ..
person rev    schedule 19.01.2014
comment
@artjom b: это было бы лучше в качестве комментария, чем редактирования. Вам не нужно забывать поместить полученный исполняемый файл из ./build.sh в каталог, который находится в переменной среды PATH. Это можно сделать через символическую ссылку, как в этом примере. - person rev; 30.12.2014
comment
Вам не нужно забывать поместить полученный исполняемый файл из ./build.sh в каталог, который находится в переменной среды PATH. Это можно сделать через символическую ссылку, как в этом примере. - person Artjom B.; 30.12.2014
comment
Это то, что забывают все остальные ответы при использовании build.sh. Я только хотел улучшить ваш ответ, сделав этот факт более заметным. Если ты не хочешь этого там, хорошо. - person Artjom B.; 30.12.2014

Я покончил с этим.

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
person Amar Banerjee    schedule 10.06.2013

См. Ссылку Руководство по установке находится в ...

https://gist.github.com/julionc/7476620

И запустите в терминале с помощью этой команды

phantomjs --webdriver = 4444

person Yasar Arafath    schedule 01.09.2016

С официального сайта: сайт 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
person Igor Shubin    schedule 18.03.2013

Для 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

Обязательно замените имя файла в этих командах на файл, который вы скачали.

person Humming    schedule 01.09.2013

Имейте в виду, что это определенно один из способов сделать это:

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

К сожалению, он устанавливает 1.6, а не последнюю, но это работает для моих целей.

person Starkers    schedule 05.01.2014
comment
Это устанавливает версию 1.9.0-1 сейчас - person Sean; 22.04.2015

Я знаю, что это слишком старо, но на всякий случай, если кто-то сейчас ответит на этот вопрос от Google, вы можете установить его, набрав apt-get install phantomjs

person Nico Savini    schedule 29.07.2016
comment
Устанавливает X11 - person eozzy; 11.09.2016

В Ubuntu для Windows я не обнаружил, что ни apt-get, ни npm версии у меня не работают. Сработал сценарий из этого комментария.

Для простоты использования я вставил все это в файл сценария с именем install_phantomjs.sh, сделал его исполняемым (chmod u+x install_phantomjs.sh), а затем запустил (./install_phantomjs.sh)

person Nick F    schedule 17.01.2017

Или последняя - 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
person Nesha Zoric    schedule 04.10.2013

Установка и вызов Phantomjs

Следующие шаги не работают, но клонированы из других построенных. (версия 2.0)

person RYO ENG Lian Hu    schedule 15.08.2015

См. Процедуру установки Хулио Напури 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
person PYK    schedule 18.09.2015

Я нашел способ попроще - Phantom dependencies + 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

Выполнено.

person Nitin Jadhav    schedule 08.12.2015

В linux для запуска hello.js не забудьте добавить путь к hello.js:

phantomjs YourPathToPhantomjsFolder / examples / hello.js

person Mr Rubix    schedule 12.01.2016

Если вы хотите легко использовать phantomjs, вы можете использовать его на phantomjscloud.com. Вы можете получить результат, просто запросив http.

person Shin Kim    schedule 22.03.2016
comment
Это было совсем не то, о чем просила ОП. - person Sujal Mandal; 26.05.2016
comment
Спасибо за ваш комментарий. Это я был виноват - person Shin Kim; 27.01.2017

Вот как я размещаю определенную версию 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
person MrAirikr    schedule 02.05.2017

Вы можете начать работу без 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
person HarlemSquirrel    schedule 13.06.2017

Вот что я сделал на своей машине с 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.

person aakrshak_    schedule 29.03.2018