Raspberry PI 3にPhantomJSのインストール

2016年9月2日

はじめに

Raspberry PIでPhantom JSを使おうと思ったら、バイナリパッケージがないんですね。仕方ないか・・・

そんなわけで、ソースからビルド

下準備

Phantom JSのビルドには、すごいメモリを使います。Raspberry PIのメモリでは収まりきらないので、Swapを増やしておきます。

/etc/dphys-swapfile

CONF_SWAPSIZE=4096
$ sudo service dphys-swapfile stop
$ sudo service dphys-swapfile start
$ free -h
             total       used       free     shared    buffers     cached
Mem:          862M       828M        33M       7.5M        23M       620M
-/+ buffers/cache:       184M       677M
Swap:         4.0G         0B       4.0G

Phantom JSのインストール

Phantom JSのビルド手順は本家に書いてあります。

http://phantomjs.org/build.html

とはいえ、Raspberry PIように少しオプションを入れた実行方法を書いておきます。

$ sudo apt-get install build-essential g++ flex bison gperf ruby perl \
  libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev \
  libpng-dev libjpeg-dev python libx11-dev libxext-dev
$ git clone git://github.com/ariya/phantomjs.git
$ cd phantomjs
$ git checkout 2.1.1
$ git submodule init
$ git submodule update
$ python ./build.py --jobs 2  

# 待つこと10時間くらい

$ sudo cp bin/phantomjs /usr/local/bin

最後のコンパイル時の--jobs 2オプションは、並列でコンパイルする数です。このオプションがないと、Raspberry PIのコアすべてを使って計算するので、メモリも使うし、ほかのプロセスが実行できなくなります。それで、--jobs 2は入れておいたほうが無難です。

コンパイルは、10時間以上かかります。失敗しても途中からやり直してくれるようです。

後始末

ビルドが成功したら、Swapをもとに戻しておきます。

/etc/dphys-swapfile

# CONF_SWAPSIZE=4096
$ sudo service dphys-swapfile stop
$ sudo service dphys-swapfile start
$ free -h
             total       used       free     shared    buffers     cached
Mem:          862M       828M        33M       7.5M        23M       620M
-/+ buffers/cache:       184M       677M
Swap:         4.0G         0B       4.0G

感想

Phantom JSをビルドするのに、何度も失敗しました。いろんなページを参考にしましたが、本家が一番正確でした。ただ、オプションを付けずに途中で落ちたり、熱暴走したりと大変でした。

全然関係ないですが、Raspberry PI 3 は発熱が多くて、ファンがないと負荷かけられないですね。