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


163

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

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

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

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

phantomjs hello.js 

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


каков вывод whereis phatomjs?
Алекс

Попробуйте этот ответ stackoverflow.com/questions/6448459/phantomjs-not-working
Алекс

это дает мне вывод "фантомы:"
ФУРКАН ИЛЬГИН

я попробовал это дает мне ту же ошибку :(
ФУРКАН ИЛЬГИН

спасибо, я решил проблему. Проблема в том, что у меня нет softlink для моей программы. Спасибо за
вашу

Ответы:


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
Чтобы фантомы были доступны из любого каталога, достаточно добавить символическую ссылку в один из каталогов, перечисленных в переменной $ 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 установите libfontconfig
Райан Детцел

Я установил phantomjs в моем каталоге пользователя. Селен не работал с этим. Затем я переместил фантомы /usr/local/shareи создал эти символические ссылки. Тогда это работало (хотя права доступа к файлам были одинаковыми). Может кто-нибудь объяснить этому не Linux-эксперту, почему это имеет значение?
Питер

38

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

sudo apt-get install phantomjs

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

@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ă Bizau

6
Но я рекомендую установить его через npm install -g phantomjs.
Ионика Бизэ

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 учтите это (дословная копия инструкций по сборке на фантомном веб-сайте):

Для 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, когда не удалось использовать готовые двоичные файлы. Компиляция на 2-гигабайтном двухъядерном виртуальном Ubuntu 10.04 заняла около 1 часа.
Кит Джон Хатчисон

7

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

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

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

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

С современной машиной они имеют в виду> 4 ядра,> 8 Гб памяти, я думаю. Я попробовал это на экземпляре micro 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после.
Акшат

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. Это можно сделать с помощью символической ссылки, как в этом примере».
Рев

Вы не должны забывать поместить полученный исполняемый файл из ./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

Для 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
Это не было тем, о чем просил ОП.
Суджал Мандал

Спасибо за ваш комментарий. Это была моя вина
Шин Ким

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"

Или в 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.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.