web-dev-qa-db-ja.com

capybara-webkitのインストールRuby gem

Capybara-webkit Ruby gemをインストールしようとすると、次のエラーが発生します

Gem :: Installer :: ExtensionBuildError:エラー:gemネイティブ拡張のビルドに失敗しました。

    /home/s/.rvm/rubies/Ruby-1.8.7-p371/bin/Ruby extconf.rb 
    cd src/ && /usr/lib/x86_64-linux-gnu/qt4/bin/qmake /home/s/.rvm/gems/Ruby-1.8.7- 
    p371@/gems/capybara-webkit-0.14.1/src/webkit_server.pro -spec 
   /usr/share/qt4/mkspecs/linux-g++ -o Makefile.webkit_server
   cd src/ && make -f Makefile.webkit_server 
   make[1]: Entering directory `/home/s/.rvm/gems/Ruby-1.8.7-p371@/gems/capybara-     webkit-0.14.1/src'

   g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB - DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. - I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui - I/usr/include/qt4/QtWebKit -I/usr/include/qt4 -I. -o EnableLogging.o EnableLogging.cpp
   g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -  DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. - I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui - I/usr/include/qt4/QtWebKit -I/usr/include/qt4 -I. -o Authenticate.o Authenticate.cpp
 In file included from Authenticate.cpp:2:0:
 WebPage.h:46:17: error: incomplete type ‘QNetworkReply’ used in nested name specifier   
 WebPage.h:46:17: error: incomplete type ‘QNetworkReply’ used in nested name specifier
 WebPage.h:46:45: error: template argument 1 is invalid
 make[1]: *** [Authenticate.o] Error 1
 make[1]: Leaving directory `/home/s/.rvm/gems/Ruby-1.8.7-p371/gems/capybara-  webkit-0.14.1/src'
 make: *** [sub-src-webkit_server-pro-make_default-ordered] Error 2
 Command 'make' failed

Ubuntu 13.04を使用し、libqt4-devとg ++をインストールしました。誰でもそれを修正する方法を知っていますか? Ubuntu 12.10に正しくインストールしました。

8
Sergei Struk

人気のある問題のようです... https://github.com/thoughtbot/capybara-webkit/issues/51

自分でこの問題を抱えていて、1週間ほど戦った。でも今は動いているようです!問題は、私がやったことに絞り込むことができないことです。修正に役立つ可能性のあるもののリストを次に示します。

不足しているパッケージをインストールします。

Sudo apt-get install libqt4-dev libqtwebkit-dev build-essential

パッケージが既に存在する場合は、パージしてからインストールします

Sudo apt-get purge libqt4-dev libqtwebkit-dev 

Rubyを再インストールする

rvm reinstall 1.9.3
  • 一意の新しいgemsetを作成します。 https://rvm.io/gemsets/creating
  • gemfileからcabybara-webkitの特定のバージョンを削除します
  • Gemfile.lockを削除します

Sudo apt-get update && Sudo apt-get upgrade

RVMを再インストールすることが、私にとってそれをしたと思います。さまざまなRailsプロジェクトと個人的なハックで時間の経過とともに雑然としていました。

3
penner