Как обновить phantomjs 1.9.8 до phantomjs 2.1.1 на Ubuntu?

Я не могу переустановить версию phantomjs с 1.9.8 по 2.1.1 на моем Ubuntu 16.04. Пожалуйста, помогите. 1.9.8 выдает ошибку, когда я пишу спин-функции, в документации вижу, что эту проблему можно решить переустановкой.


person Andrzej Moroz    schedule 25.04.2016    source источник


Ответы (6)


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

sudo apt-get install nodejs
sudo apt-get install nodejs-legacy
sudo apt-get install npm
sudo npm -g install phantomjs-prebuilt
person dmdip    schedule 25.04.2016
comment
Поскольку PhantomJS не имеет ничего общего с node.js или npm (устанавливается только для удобства), это устанавливает целую экосистему для одного бинарника, который не имеет ничего общего с экосистемой. - person Artjom B.; 25.04.2016
comment
Достаточно верно. Nodejs (и nodejs-legacy) требуются npm для успешной установки phantomjs. Шаги, которые я выполнил, были предназначены для использования с селеном в питоне. После выполнения npm всегда можно удалить. Это был просто очень быстрый способ заставить драйвер PhantomJS работать с селеном. - person dmdip; 25.04.2016

Итак, ответ 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/bin, но вы можете разместить символическую ссылку где угодно...

person Fredrik Bränström    schedule 19.10.2016

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

Используйте 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 phantomjs@* version
npm install [email protected]

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

jmunsch@ubuntu:~$ npm show phantomjs@* 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"

Протестировано на Ubuntu 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: невозможно открыть файл общего объекта: нет такого файла или каталога

Пытаться:

 sudo apt-get install libfontconfig
person jmunsch    schedule 07.09.2016
comment
@3zzy, вы правы, обновление выглядело как проблема с зависимостями, и ссылка на относительный путь могла быть проблемой. Также по какой-то причине wget не работал, так что я scp перекинул смоляной шар на машину. Добавлена ​​проблема github с той же ошибкой 403 в доступе. - person jmunsch; 12.09.2016

Для тех у кого проблемы с установкой как у меня

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

  • Я удаляю фантомы: удалите фантомы из ubuntu sudo apt-get remove phantomjs или удалите папку npm /node_modules/phantomjs, она будет в /, возможно, вам нужно будет удалить ln ссылку фантомов в /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: npm install phantomjs из каталога /, npm установить его в папку /node_module/phantomjs

Пример

cd /;
npm install phantomjs
  • Тестовый бин файл

Пример

//check version of phantomjs
/node_modules/phantomjs/bin/phantomjs -v
/node_modules/phantomjs/bin/phantomjs test.js
  • связать файл bin с /usr/bin:

Пример

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

  • проверьте его версию, чтобы убедиться, что она подходит
    phantomjs -v в моем случае 2.1.1
person DarckBlezzer    schedule 13.09.2016

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

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

Лучший текущий вариант — использовать готовый двоичный файл из: https://bitbucket.org/ariya/phantomjs/download

person prusswan    schedule 03.03.2017

Поскольку утвержденные шаги не сработали для меня, я делюсь найденным решением.

# Install phantomJS
export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2
sudo tar xvjf $PHANTOM_JS.tar.bz2

sudo mv $PHANTOM_JS /usr/local/share
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin

# Sanity check 
phantomjs --version
>>> 2.1.1
person isabella    schedule 28.01.2020