Ubuntu에서 PhantomJS를 어떻게 설정하고 실행할 수 있습니까?


163

PhantomJS를 설정하고 비디오에 녹화했습니다 : https://www.dailymotion.com/video/xnizmh_1_webcam

빌드 지침 : http://phantomjs.org/build.html

설정에 문제가 있습니까?

설정 후 빠른 시작 자습서를 읽고이 코드를 작성하려고했습니다.

phantomjs hello.js 

"명령을 찾을 수 없음"오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까?


phatomjs의 결과는 무엇입니까?
Alex


그것은 "phantomjs을"줘 출력
FURKAN ILGIN

나는 그것을 같은 오류가 발생 시도 :(
FURKAN ILGIN

문제를 해결해 주셔서 감사합니다. 문제는 내 프로그램에 대한 소프트 링크가 없다는 것입니다. 도움을 주셔서 감사합니다 :)
FURKAN ILGIN

답변:


360

귀두 일의 대답은 저를 올바른 길로 안내했습니다. / usr / bin /에 심볼릭 링크를 하나 더 추가해야했으며 3에 대해 직접 심볼릭 링크를 수행했습니다 (아래 참조).

우분투 서버 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
마지막 sym 링크가 필요하다면 PATH에 / usr / local / bin이 없기 때문입니다.
DrewB

1
이것은 작동하지만 누구나 usr/bin링크를 만들지 않고 전체를 복사하여 붙여 넣지 않아야하는 이유는 /usr/local무엇입니까?
Heisenberg

6
누구도 허가를 얻지 못했습니까?
사용자

1
모든 디렉토리에서 phantomjs를 사용할 수 있으려면 $ PATH 변수에 나열된 디렉토리 중 하나에 심볼릭 링크를 추가하면 충분합니다. ( "echo $ PATH"를 실행하여 이들이 무엇인지 확인하십시오).
Juampy NR 10

5
이 문제가 발생했습니다 : bin / phantomjs : 공유 라이브러리를로드하는 동안 오류가 발생했습니다 : libfontconfig.so.1 : 공유 객체 파일을 열 수 없습니다 : 해당 파일이나 디렉토리가 없습니다. 여기서 수정을 찾았 습니다 . 다음 명령을 실행하십시오.sudo apt-get install libfontconfig
Neil Hoff

110

PhantomJS는 npm에 있습니다. 이 명령을 실행하여 전역으로 설치할 수 있습니다.

npm install -g phantomjs-prebuilt  

phantomjs -v 돌아와야한다 2.1.1


6
Ubuntu에서 +1은와 1.9.7반대로 버전 을 제공 합니다 1.4.0.
opyate

1
+1 사용 npm하지만 내 답변보기
Fery Wardiyanto

1
bitbucket.org가 프록시에 의해 차단 된 경우npm install phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads
79E09796

1
우분투 14.04에서는 이제 나에게 2.1.1.
Joe Mornin

우분투 18.04에서 루트로 실행해야한다는 오류가 발생합니다. 로 sudo: 그것은 작동sudo npm install -g phantomjs-prebuilt
rubo77에게

58

phantomjs 웹 사이트에서 사전 빌드 된 패키지 ( http://phantomjs.org/download.html) 를 다운로드 한 다음 터미널을 열고 Downloads 폴더로 이동하십시오.

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


복사 붙여 넣기 대신 직접 링크를 작성하는 이유는 무엇입니까?
Heisenberg

2
symlink 할 수 있는데 왜 붙여 넣기를 직접 복사 하시겠습니까? = /
Jared Markell

1
새로운 우분투에서도 apt-get install libfontconfig
Ryan Detzel

내 사용자 디렉토리에 phantomjs가 설치되었습니다. 셀레늄은 그걸로 작동하지 않았다. 그런 다음 phantomjs로 이동하여 /usr/local/share이러한 심볼릭 링크를 만들었습니다. 그런 다음 파일 권한이 동일하더라도 작동했습니다. 왜 이것이 비 리눅스 전문가인지 설명 할 수 있습니까?
Peter

38

패키지 관리자에서 설치하십시오.

sudo apt-get install phantomjs

2
안타깝게도 이제 1.4를 설치합니다. phantom.js를 사용하는 많은 것들이 작동하지 않습니다.
줄리안 버치

@JulianBirch 네, 우분투 Saucy Salamander (13.10)에 있다면이 [link] launchpad.net/ubuntu/+source/phantomjs 에 따라 1.9.0 버전을 얻을 수 있다고 생각합니다. Raring Ringtail (13.04)에서 방금 설치했습니다. 그리고 링크에서 말하는 것처럼 1.6.0 버전을 얻습니다

3
16:06

6
그러나를 통해 설치하는 것이 좋습니다 npm install -g phantomjs.
Ionică Bizău

1
방금 설치했습니다. 지금은 1.9.0입니다.
Strabek

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
Michel은 맞습니다. 가상 디스플레이 (Xvfb)를 필요로하지 않기 때문에 최신 버전의 팬텀을 사용해야합니다
Vijay Boyapati

Andre의 대답은 더 빠르고 쉬웠습니다.
fooMonster

12

1.5 이상의 PhantomJS 버전의 경우 다음 사항을 고려하십시오 (phantom 웹 사이트의 빌드 지시 사항 사본).

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와 관련된 문제를 해결했습니다. 2GB 우분투 10.04 듀얼 코어 가상에서 컴파일하는 데 약 1 시간이 걸렸습니다.
Keith John Hutchison

7

Ubuntu의 경우 PhantomJS 사이트에서 다운로드 할 수있는 사전 빌드 된 버전을 사용할 수 있습니다 .

당신이 당신의 손에 심각한 시간이 있다면 당신은 또한 그것을 직접 만들 수 있습니다 . (이것은 Nikhil의 답변에서 나온 절차입니다).

PhantomJS에있는 사람들은 바이너리를 사용하여 시간을 절약 할 것을 권장합니다.

경고 : 소스에서 PhantomJS를 컴파일하는 데는 오랜 시간이 걸립니다. 주로 WebKit 모듈의 수천 개 파일 때문입니다. 최신 머신에서 4 개의 병렬 컴파일 작업을 수행하면 전체 프로세스에 약 30 분이 소요됩니다. 기성 바이너리 패키지가 제공되는 경우 다운로드하여 설치하는 것이 좋습니다.

현대식 기계를 사용하면 4 코어 이상, 8GB mem 이상이라고 생각합니다. 마이크로 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후에 만 작동합니다 .
Akshat

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 환경 변수에있는 디렉토리에 저장하는 것을 잊지 않아도됩니다.이 예는 symlink를 통해 수행 할 수 있습니다."
rev

결과 실행 파일을 ./build.shPATH 환경 변수에있는 디렉토리 에 넣는 것을 잊지 않아도됩니다 . 이 예제와 같이 symlink를 통해 수행 할 수 있습니다.
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

공식 사이트에서 : phantomjs site

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

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지금 버전을 설치합니다
Sean

1

나는 이것이 너무 오래되었다는 것을 알고 있지만, 누군가가 Google 에서이 질문에 도달하면 apt-get install phantomjs를 입력하여 설치할 수 있습니다.



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

Julio Napurí 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

그리고 npm

[sudo] npm install -g phantomjs

끝난.


0

Linux에서 hello.js를 실행하려면 hello.js의 경로를 추가해야합니다.

phantomjs YourPathToPhantomjsFolder / examples / hello.js


0

phantomjs를 쉽게 사용하려면 phantomjscloud.com에서 사용할 수 있습니다. http 요청만으로 결과를 얻을 수 있습니다.


2
이것은 OP가 요구 한 것이 아닙니다.
수잘 만달

당신의 의견에 감사드립니다. 그것은 내 잘못이었다
신 김

0

Windows 용 Ubuntu에서 나에게 맞는 버전 apt-get도 발견하지 못했습니다 npm. 이 주석 의 스크립트는 효과가있었습니다 .

사용하기 쉽도록 모든 것을이라는 스크립트 파일에 붙여 넣고 install_phantomjs.sh실행 가능하게 만든 chmod u+x install_phantomjs.sh다음 ( ./install_phantomjs.sh) 실행했습니다 ( )


0

이것이 내 도커 컨테이너의 / usr / local / 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

또는 ./OS에 따라 다릅니다.

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

여기 내 우분투 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를 설치하고 실행하는 데 가장 적합한 솔루션이라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.