4

Windows に capybara 用の Webkit ドライバーをインストールしようとしていますが、次のエラーが表示されます。

$ gem install capybara-webkit-0.12.1.gem
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing capybara-webkit-0.12.1.gem:
        ERROR: Failed to build gem native extension.

        c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb


Gem files will remain installed in c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.12.1 for inspection.
Results logged to c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.12.1/./gem_make.out

ログファイルの内容は次のとおりです。

C:\>cat c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.12.1/./gem_make.out
c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb

私はしばらくの間、問題が何であるかを理解しようとしてきました。ログ ファイルはあまり役に立ちません。また、私が見つけた同様の問題の解決策は、Unix に固有のものであるか、または私にとってはうまくいきませんでした。助けていただければ幸いです。

注: この質問は、capybara-webkit Google グループにクロスポストされています。


更新: capybara-webkit Google Groupの Joe Ferris の推奨に従って、gem を手動でビルドしようとしましたが、ビルドが失敗する原因に関するより詳細な情報を得ることができました。bundle exec rake buildcapybara-webkit のディレクトリで実行中に表示されるメッセージは次のとおりです。

cd src/ && c:/Qt/4.8.3/bin/qmake.exe "c:/Documents and Settings/user/My Documents/Workspace/thoughtbot-capybara-webkit-7289a8e/src/webkit_server.pro" -spec c:/Qt/4.8.3/mkspecs/win32-g++ -o Makefile.webkit_server
'.' is not recognized as an internal or external command,
operable program or batch file.
'.' is not recognized as an internal or external command,
operable program or batch file.
capybara-webkit 0.12.0 built to pkg/capybara-webkit-0.12.0.gem
cd src/ && make -f Makefile.webkit_server 
make[1]: Entering directory `/c/Documents and Settings/user/My Documents/Workspace/thoughtbot-capybara-webkit-7289a8e/src'
make -f Makefile.webkit_server.Release
make[2]: Entering directory `/c/Documents and Settings/user/My Documents/Workspace/thoughtbot-capybara-webkit-7289a8e/src'
bin/rcc.exe -name webkit_server webkit_server.qrc -o release/qrc_webkit_server.cpp
make[2]: bin/rcc.exe: Command not found
make[2]: *** [release/qrc_webkit_server.cpp] Error 127
make[2]: Leaving directory `/c/Documents and Settings/user/My Documents/Workspace/thoughtbot-capybara-webkit-7289a8e/src'
make[1]: *** [release] Error 2
make[1]: Leaving directory `/c/Documents and Settings/user/My Documents/Workspace/thoughtbot-capybara-webkit-7289a8e/src'
make: *** [sub-src-webkit_server-pro-make_default-ordered] Error 2
Command 'make' failed

その他の潜在的に関連する情報:

C:\>which make --all
C:\RailsInstaller\DevKit\bin\make.EXE
C:\Qt\4.8.3\bin\make.BAT
C:\Program Files\Gow\bin\make.EXE
C:\>which rcc
C:\Qt\4.8.3\bin\rcc.EXE
C:\>which g++
C:\RailsInstaller\DevKit\mingw\bin\g++.EXE

そして私のパス:

C:\PROGRA~1\Serena\vm\win32\bin;
C:\PROGRA~1\Serena\vm\common\bin\win32;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\Program Files\ATI Technologies\ATI.ACE\;
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;
C:\WINDOWS\system32\WindowsPowerShell\v1.0;
C:\Program Files\TortoiseSVN\bin;
C:\RailsInstaller\Ruby1.9.3\bin;
C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin;
C:\RailsInstaller\DevKit\bin;
C:\RailsInstaller\Git\cmd;
C:\Program Files\ansi153\x86;
C:\bin;
C:\RailsInstaller\DevKit\mingw\bin;
C:\Qt\4.8.3\bin;
C:\Program Files\Nodejs;
C:\Documents and Settings\user\Desktop\emacs-23.4\bin;
C:\Python27;
C:\Python27\Scripts;
C:\Program Files\GnuWin32\bin;
C:\Program Files\Gow\bin;
C:\Program Files\Notepad++;
C:\Documents and Settings\user\Application Data\npm\ 
4

1 に答える 1

2

ここで解決策を見つけました: https://bugreports.qt-project.org/browse/QTBUG-27237

この特定の回避策に従って、コンピューターで動作するようにします。

バージョン 4.8.3 固有のバグのようで、rcc.exe のパスが正しく検出されません。

また、この後に私と同じエラーが発生する可能性があります: qmake が webkit サーバーを\capybara-webkit-0.12.1\src\releaseにコンパイルしたことがわかります。また、capybara-webkit ビルダーは、この exe を「debug」フォルダーから取得することを想定しています。capybara_webkit_builder.rb の 57 行目を参照してください

私は git リポジトリをフォークし、このソース ファイルを "release" フォルダーに依存するように変更しました。

それでも、それを機能させるには2つのかなり悪い回避策が必要でした...おそらく、capybara-webkitのインストール手順で推奨されているQT 4.7.Xを使用すると、インストールがより簡単になります。私はそれをテストする必要があります。

于 2012-10-31T17:48:40.633 に答える