capybara-webkit がインストール出来ない


もうかれこれ1ヶ月近く悩んでます。
どうすればcapybara-webkitがインストール出来るでしょうか?
状況はこんな感じです。

1. `rails new` で新規プロジェクト作成
2. Gemfileに `capybara` と `capybara-webkit` を追加
3. `bundle install` を実行
4. 次のエラーが発生

>||
# --- 省略 ---
stable.h:23:23: error: QWebElement: No such file or directory
stable.h:24:24: error: QWebSettings: No such file or directory
stable.h:34:20: error: QtWebKit: No such file or directory
make[1]: *** [build/webkit_server.gch/c++] Error 1
make[1]: Leaving directory `/home/vagrant/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/capybara-webkit-1.3.1/src'
make: *** [sub-src-webkit_server-pro-make_default-ordered] Error 2

make failed, exit code 2
# --- 省略 ---
||<

**環境

| *項目 | *バージョン |
| OS | CentOS 6.5 |
| Ruby | ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux] |
| Rails | 4.1.0 |
| xml2-config | 2.7.6 |
| xslt-config | 1.1.26 |
| QMake | QMake version 2.01a |
| Qt | Using Qt version 4.8.6 |

Qtはこちらのページの手順でインストールしています。

Installing Qt and compiling capybara webkit · thoughtbot/capybara-webkit Wiki
https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2015/01/01 19:54:21

ベストアンサー

id:syamaoka No.1

回答回数21ベストアンサー獲得回数9

質問者の方と同じ環境を VM で作って試してみたら再現し、解決しました。
結論だけ先に申し上げると、capybara-webkit の CentOS 6.5 向けのビルド手順が間違っています(最小構成で作られた環境が考慮されていない?)。以下の手順で Qt をビルドしてみてください。

# yum install コマンドが分かれているのは特に意味はありません。
sudo yum install libxcb libxcb-devel xcb-util xcb-util-devel
sudo yum install flex bison gperf libicu-devel libxslt-devel ruby
sudo yum install libXrender-devel

# ここからは qt のソースのルートディレクトリで実行します。
./configure -opensource -nomake examples -nomake tests
sudo gmake -j4 # -j オプションは、PC のコア数と同じ数値に調整してください
sudo gmake install

一応、なぜこの手順が正しいのかについて説明すると、ソースからビルドする場合に qwebkit を有効にするには依存ライブラリがインストールされていることが必要だからです。依存ライブラリが足りない場合は qwebkit のビルドが自動的にオフになるようで、configure のログをよく見ると警告が表示されていますが、分かりづらすぎるため普通は気が付かないと思います。私は configure のログを注視する習慣があるのと質問にあったエラーログから qwebkit がそもそもインストールされていないのではないかとあたりがついていたので、たまたま気が付きました。
ビルド方法の詳細が知りたければ、http://qt-project.org/wiki/Building_Qt_5_from_Git を参照してください。こちらは Qt5 用のドキュメントですが、Qt4 でも通用しました。

再現させた環境は以下のとおりです。

[vagrant@vagrant-centos65 app]$ uname -a
Linux vagrant-centos65.vagrantup.com 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[vagrant@vagrant-centos65 app]$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
[vagrant@vagrant-centos65 app]$ qmake -v
QMake version 2.01a
Using Qt version 4.8.6 in /usr/local/Trolltech/Qt-4.8.6/lib
id:syamaoka

capybara-webkit の issues に追加しておきました。
https://github.com/thoughtbot/capybara-webkit/issues/700

2014/12/30 20:55:36
id:yamagh

もう感動です!
ご回答の手順で無事インストール出来ました!
ありがとうございました!

インストールできなかった理由もなるほど納得です。
おまけにGithubのページまで更新して下さって素晴らしすぎです。
自分のマシンで起きたトラブルを解決する手順がこんなに早く公式のページに反映されるなんて・・・!
OSSの素晴らしさを垣間見た気がしました。

> configure のログをよく見ると警告が表示されていますが、分かりづらすぎるため普通は気が付かないと思います。
今までconfigureのログは最後にエラーが出てないか見る程度でした。
ちゃんと見てれば自力で解決出来たかもしれないだけに残念です。反省点ですね。

無事インストールが出来てまた一歩進めそうです。
回答だけでなく感動まで頂けました!
重ねてありがとうございました!

2015/01/01 19:54:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません