2016-04-25 13 views

ответ

31

Я только что установил phantomjs 2.1.1 в Ubuntu 16.04 со следующими шагами, которые я нашел после немного прибегая к помощи:

sudo apt-get install nodejs 
sudo apt-get install nodejs-legacy 
sudo apt-get install npm 
sudo npm -g install phantomjs-prebuilt 
+6

Поскольку PhantomJS не имеет ничего общего с Node.js или НМП (устанавливается только для удобства), это устанавливает целую экосистему для одного двоичного файла, который не имеет ничего с экосистемой. –

+1

Правда. Узлы (и nodejs-legacy) требуются для npm для успешной установки phantomjs. Шаги, которые я выполнил, были предназначены для использования с селеном в питоне. Npm всегда можно удалить после завершения.Это был очень быстрый способ заставить водителя PhantomJS работать с селеном. – dmdip

5

Вот как я бы это сделать, если бы я разработке. Пакеты версионируются в nodejs и не убунту:

Использование nvm: https://github.com/creationix/nvm

touch ~/.profile 
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash 

source ~/.profile 
# node 6x 
nvm install 6.5.0 
npm install [email protected] 

# node 4x 
nvm install 4.5.0 
nvm use 4.5.0 
npm install [email protected] 

# node 0.12x 
nvm install 0.12 
npm show [email protected]* version 
npm install [email protected] 

Возможно, мы разрабатываем на 0.10, 0.12, 4.X, iojs4.x, 6.X, etc хорошо теперь мы имеем доступ выбрать тот вариант phantomjs:

[email protected]:~$ npm show [email protected]* version 
[email protected] '0.0.1' 
[email protected] '0.0.2' 
[email protected] '0.0.3' 
[email protected] '0.0.4' 
[email protected] '0.0.5' 
[email protected] '0.0.6' 
[email protected] '0.0.7' 
[email protected] '0.0.8' 
[email protected] '0.0.9' 
[email protected] '0.1.0' 
[email protected] '0.1.1' 
[email protected] '0.2.0' 
[email protected] '0.2.1' 
[email protected] '0.2.2' 
[email protected] '0.2.3' 
[email protected] '0.2.4' 
[email protected] '0.2.5' 
[email protected] '0.2.6' 
[email protected] '1.9.8' 
[email protected] '1.9.9' 
[email protected] '1.9.10' 
[email protected] '1.9.11' 
[email protected] '1.9.12' 
[email protected] '1.9.13' 
[email protected] '1.9.15' 
[email protected] '1.9.16' 
[email protected] '1.9.17' 
[email protected] '1.9.18' 
[email protected] '1.9.19' 
[email protected] '2.1.1' 
[email protected] '2.1.2' 
[email protected] '2.1.3' 
[email protected] '1.9.20' 
[email protected] '2.1.7' 

общесистемные сценарии развертывания и т. д.

Вот как используется tarball

export PHANTOM_JS_VERSION=2.1.1 
wget "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-$PHANTOM_JS_VERSION-linux-x86_64.tar.bz2" 
tar xvfj "./phantomjs-$PHANTOM_JS_VERSION-linux-x86_64.tar.bz2" 
ln -sf "./phantomjs-$PHANTOM_JS_VERSION-linux-x86_64/bin/phantomjs" "/usr/bin" 

Проверено на убунту 14.04, возможно переместить папку в другое место, кроме ./

обновление для 16.04:

Wget может или не может работать увидеть: https://github.com/Medium/phantomjs/issues/161

# install dependencies 
sudo apt-get install libfontconfig 
# extract the tar file 
tar xvfj "./phantomjs-$PHANTOM_JS_VERSION-linux-x86_64.tar.bz2" 
# use full path 
ln -sf "$(pwd)/phantomjs-$PHANTOM_JS_VERSION-linux-x86_64/bin/phantomjs" "/usr/bin" 

Ошибка

phantomjs: ошибка при загрузке разделяемых библиотек: libfontconfig.so.1: не удается открыть общий объектный файл: Нет такого файла или каталога

Try:

sudo apt-get install libfontconfig 
+0

Не работает на Ubuntu 16.04 – 3zzy

+0

@ 3zzy your're right, обновленный выглядит как проблема зависимости, и ссылка на относительный путь могла быть проблемой. Также по какой-либо причине «wget» не работал, поэтому я «scp» tar-мяч перешел на машину. Добавлена ​​проблема github с той же ошибкой, что и 403 acess. – jmunsch

1

Для тех, у кого есть проблемы, чтобы установить, как я

это проще, чем вы думаете ...

  • деинсталлировать phantomjs: Удалить phantomjs из убунту sudo apt-get remove phantomjs или удалить НУЮ папку /node_modules/phantomjs это будет в /, возможно, вам нужно будет удалить ln ссылку на phantomjs в /usr/bin или /usr/local/bin/ названии этого является phantomjs

Пример

//use this if you installed with apt-get 
sudo apt-get remove phantomjs *remove the phantomjs 
rm /usr/bin/phantomjs   *use this if the link didn't remove. 

//use this if you installed from npm: like this: npm install phantomjs 
rm -R /node_modules/phantomjs *note: it will be in other folder, search it. 
  • установить phantomjs от НПМ: npm install phantomjs из / каталога, НПМ установить его в папку /node_module/phantomjs

Пример

cd /; 
npm install phantomjs 
  • Test бин файл

Пример

//check version of phantomjs 
/node_modules/phantomjs/bin/phantomjs -v 
/node_modules/phantomjs/bin/phantomjs test.js 
  • файл ссылка бен /usr/bin:

Пример

ln -sf /node_modules/phantomjs/bin/phantomjs /usr/bin/phantomjs

  • проверить версию, чтобы посмотреть, если это нормально
    phantomjs -v в моем случае 2.1.1
5

Таким образом, ответ jmunsch работает для меня, но только, чтобы обеспечить четкое и минимальный рецепт:

export PHANTOM_JS_VERSION=2.1.1 

sudo apt-get install libfontconfig 

wget "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-$PHANTOM_JS_VERSION-linux-x86_64.tar.bz2" 

tar xvfj "./phantomjs-$PHANTOM_JS_VERSION-linux-x86_64.tar.bz2" 

ln -sf "$(pwd)/phantomjs-$PHANTOM_JS_VERSION-linux-x86_64/bin/phantomjs" "/usr/bin" 

Последняя строка требует Sudo из-за/USR/бен, но вы можете поместить символическую ссылку везде ...

1

phantomjs 2.1.1 теперь в комплекте с 16.04 (https://launchpad.net/ubuntu/xenial/+source/phantomjs), поэтому вы должны иметь возможность устанавливать/обновлять его как системный пакет.

Update: Ответ на этот вопрос существует для информационных целей, но не рекомендуется использовать версию системы пакетов в настоящее время из-за проблемы, такие как: https://bugs.launchpad.net/ubuntu/+source/phantomjs/+bug/1605628 Это связанно с проблемой с загрузкой файлов, было зафиксировано вверх по течению, но характер исправления помешал ему работать как системный пакет.

Лучший вариант тока использовать скомпилированную бинарного от: https://bitbucket.org/ariya/phantomjs/download