CentOS-6.2にPhantomJS-1.4.1をインストールする


2012年 02月 10日

みなさん仕事でPhantomJS使っていますか?僕は使っていません。でもそろそろ使ってみたいので、仕事でよく使うCentOSにPhantomJSをインストールする方法を調べてみました。

環境

今回はVirtualBoxes – Free VirtualBox® Imagesで公開されているCentOS-6.2のイメージを利用します。

PhantomJSをインストールする前に、あらかじめ次のコマンドでライブラリを更新と開発ツールのインストールを行います。依存関係などが面倒なので、開発ツールは全部インストールします。

sudo yum upgrade
sudo yum groupinstall 'Development tools' 'Additional Development'

phantomjs-rpmsを利用してインストール

最近のPhantomJSのインストール方法はCentOS/RHELの項が追加されていす。

公式サイトのすすめに従い、phantomjs-rpmsを使ってインストールしたいと思います。

cd /var/tmp
git clone git://github.com/jbraeuer/phantomjs-rpms.git
cd phantomjs-rpms

Qt-4.7のインストール

fetch-qt-rpmsコマンドで必要なrpmをダウンロードしてインストールします。

./fetch-qt-rpms # Qt-4.7をダウンロード
sudo yum remove qt-x11 qt phonon perl-XML-SAX-Base # CentOS6.2用のQt(4.6.2)を削除
sudo yum install RPMS/el/6/i386/* # Qt-4.7をインストール

PhantomJSのビルドとインストール

まず、ソースコードを取得します。今回はfetch-phantomjs-branchコマンドを使わずに取得します。

(現在のバージョンのphantomjs-rpmsではドキュメントの説明通り’./fetch-phantomjs-branch 1.4.1’を実行すると1.4.1ではなく1.5.0(development)のアーカイブを取得してしまうため)

# 本来ならこんな努力必要無いはず、、、
wget https://github.com/ariya/phantomjs/tarball/1.4.1 -O ariya-phantomjs-b60f101.tar.gz --no-check-certificate
tar zxf ariya-phantomjs-b60f101.tar.gz
mv ariya-phantomjs-b60f101 phantomjs-1.4.1
tar cf phantomjs-1.4.1-source.tar.gz phantomjs-1.4.1
mv phantomjs-1.4.1-source.tar.gz SOURCES/
rm -rf phantomjs-1.4.1
rm -rf ariya-phantomjs-b60f101.tar.gz

苦労の末アーカイブを取得しました。PhantomJSをビルドしてインストールします。

./rpm SPECS/phantomjs-1.4.1.spec
sudo yum install RPMS/i686/phantomjs*

xvfbの設定

Headless WebkitなPhantomJSですが、現在のバージョンでは動作にXサーバが必須のようです。FAQではxvfbを利用する方法が紹介されています。

phantomjs-rpmsにはxvfbの為の二つのスクリプトが含まれています。

SOURCES/xvfb-run.sh

xvfb-run.shはxvfbを起動した上でコマンドを実行するスクリプトです。xvfb-run.shを利用すると次の様にPhantomJSを起動する事が出来ます。

./xvfb-run.sh phantomjs --version

SOURCES/xvfb.init

xvfb.initはxvfbをサービスとして起動するためのスクリプトです。start-stop-daemonというdebian由来のツールに依存しています。次のエントリを参考にしてインストールしましょう。

xvfb.initをインストールます。

sudo cp SOURCES/xvfb.init /etc/init.d/xvfb
sudo chmod 755 /etc/init.d/xvfb
sudo chkconfig --add xvfb
sudo chkconfig xvfb on

xvfbをサービスとして起動します。

sudo /etc/init.d/xvfb start

この場合、次のコマンドでPhantomJSを実行する事が出来ます。

DISPLAY=:99 phantomjs --version

まとめ

CentOSにRPMを使ってPhantomJSをインストールしました。これでPhantomJSを採用する場合の障壁が一つ減りましたね。いつPhantomJSでWeb魚拓を作成する案件が来ても大丈夫そうです。