Я не могу переустановить версию phantomjs с 1.9.8 по 2.1.1 на моем Ubuntu 16.04. Пожалуйста, помогите. 1.9.8 выдает ошибку, когда я пишу спин-функции, в документации вижу, что эту проблему можно решить переустановкой.
Как обновить phantomjs 1.9.8 до phantomjs 2.1.1 на Ubuntu?
Ответы (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
Итак, ответ 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, но вы можете разместить символическую ссылку где угодно...
Вот как бы я это сделал, если бы занимался разработкой. Пакеты имеют версии для 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
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
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
Поскольку утвержденные шаги не сработали для меня, я делюсь найденным решением.
# 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