[Ruby] Capybaraでphantomjs関連のエラーに対応する
あるサーバーで動いているRubyスクリプトを別サーバーに移行させたら、Capybara関連でハマったので、メモとして残します。
公開日: 2018.12.21
現象
Capybaraを実行するRubyスクリプトを実行したら、下記のエラーが出ました。
failed to detect theversion of the executable at '/usr/bin/phantomjs'
phantomjsのバージョンが見つからないというエラーですが、色々調べてみてると、phantomjsがそもそも入ってない場合も同じエラーが出るようで。
よーく考えてみたら、phantomjsをインストールしてなかった。。。そのエラーですね。
対応方法
ここからが若干ハマりポイントです。(この前も若干ハマったんですけど。。。)
phantomjsをインストール(apt installじゃダメだよ)
Ubuntuだったらaptでインストール!ということで、
sudo apt install phantomjs
としたいところですが、apt installで入れるとphantomjsのバージョンが古いらしく、エラーになります。
ということで、ここを参考にphantomjsをインストールします。
$ sudo apt-get update
$ sudo apt-get install build-essential chrpath libssl-dev libxft-dev -y
$ sudo apt-get install libfreetype6 libfreetype6-dev -y
$ sudo apt-get install libfontconfig1 libfontconfig1-dev -y
$ export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
$ wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/$PHANTOM_JS.tar.bz2
$ sudo tar xvjf $PHANTOM_JS.tar.bz2
筆者の環境では、phantomjsは/usr/bin/の中にいて欲しかったので、最後のシンボリックリンクのコマンドは、
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/bin
としました。
インストールできているか確認
phantomjs --version
でバージョンが出てくればOKです。
これで、CapybaraがRubyから実行できるようになります。