気ままに気ままのエンジニアブログ

定期的に得た知見を気ままに発信中

capybara-webkit install時のエラー解決方法(bundle install)

こんにちは。

今日の天気はどんより、梅雨をも感じさせるじめじめした天気です。
と同時に、今年も僕の天パが産声をあげました。

f:id:hachimaki37:20200510102014j:plain
天パもこんなに可愛かったらいいのですが。。

どうもハチマキです。

はじめに

ここではRails開発環境構築に伴い、躓くポイントをまとめております。

今回は、capybara-webkitインストール時に起こり得るエラーの解決方法についてです。

下記の手順を行えば一つ前に進むことができますので、深呼吸して、一つずつ解決していきましょう!

本日の概要 : capybara-webkitインストール時のエラー解決方法

  • 各種バージョン
  • エラー例
  • 問題点
  • 解決方法
  • 備考
  • 参考資料

各種バージョン

事象例

bundle installしたらcapybara-webkitでエラーが出た。
指示されたバージョンを叩いたけどうまくインストールできん。。

エラー例

Using capybara 2.7.1
Fetching capybara-webkit 1.11.1
Installing capybara-webkit 1.11.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

  current directory: /Users/ユーザー名/アプリケーション名/vendor/bundle/ruby/2.3.0/gems/capybara-webkit-1.11.1
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20200109-83557-fd58uv.rb extconf.rb
Info: creating stash file /Users/ユーザー名/アプリケーション名/vendor/bundle/ruby/2.3.0/gems/capybara-webkit-1.11.1/.qmake.stash
cd src/ && ( test -e Makefile.webkit_server || /usr/local/bin/qmake -o Makefile.webkit_server
/Users/ユーザー名/アプリケーション名/vendor/bundle/ruby/2.3.0/gems/capybara-webkit-1.11.1/src/webkit_server.pro ) && /Library/Developer/CommandLineTools/usr/bin/make -f
Makefile.webkit_server
Project ERROR: No QtWebKit installation found. QtWebKit is no longer included with Qt 5.6, so you may need to install it separately.
make: *** [sub-src-webkit_server-pro-make_first-ordered] Error 3
Command 'make' failed

current directory: /Users/ユーザー名/アプリケーション名/vendor/bundle/ruby/2.3.0/gems/capybara-webkit-1.11.1
make "DESTDIR=" clean
cd src/ && ( test -e Makefile.webkit_server || /usr/local/bin/qmake -o Makefile.webkit_server
/Users/ユーザー名/アプリケーション名/vendor/bundle/ruby/2.3.0/gems/capybara-webkit-1.11.1/src/webkit_server.pro ) && /Library/Developer/CommandLineTools/usr/bin/make -f
Makefile.webkit_server clean
Project ERROR: No QtWebKit installation found. QtWebKit is no longer included with Qt 5.6, so you may need to install it separately.
make: *** [sub-src-webkit_server-pro-clean-ordered] Error 3

current directory: /Usersユーザー名/アプリケーション名/vendor/bundle/ruby/2.3.0/gems/capybara-webkit-1.11.1
make "DESTDIR="
cd src/ && ( test -e Makefile.webkit_server || /usr/local/bin/qmake -o Makefile.webkit_server
/Users/ユーザー名/アプリケーション名/vendor/bundle/ruby/2.3.0/gems/capybara-webkit-1.11.1/src/webkit_server.pro ) && /Library/Developer/CommandLineTools/usr/bin/make -f
Makefile.webkit_server
Project ERROR: No QtWebKit installation found. QtWebKit is no longer included with Qt 5.6, so you may need to install it separately.
make: *** [sub-src-webkit_server-pro-make_first-ordered] Error 3

make failed, exit code 2

Gem files will remain installed in /Users/ユーザー名/アプリケーション名/vendor/bundle/ruby/2.3.0/gems/capybara-webkit-1.11.1 for inspection.
Results logged to /Users/ユーザー名/アプリケーション名/vendor/bundle/ruby/2.3.0/extensions/universal-darwin-17/2.3.0/capybara-webkit-1.11.1/gem_make.out

An error occurred while installing capybara-webkit (1.11.1), and Bundler cannot continue.
Make sure that `gem install capybara-webkit -v '1.11.1' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
 capybara-webkit

エラーメッセージで、Make sure that `gem install capybara-webkit -v '1.11.1'
とcapybara-webkitのバージョンを指定し、インストールして!と言われたので、その通りにやってみる。
$ sudo gem install capybara-webkit -v '1.11.1'

Password:
Building native extensions.  This could take a while...
ERROR:  Error installing capybara-webkit:
     ERROR: Failed to build gem native extension.

  current directory: /Library/Ruby/Gems/2.3.0/gems/capybara-webkit-1.11.1
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20200109-98134-14mguwo.rb extconf.rb
Info: creating stash file /Library/Ruby/Gems/2.3.0/gems/capybara-webkit-1.11.1/.qmake.stash
cd src/ && ( test -e Makefile.webkit_server || /usr/local/opt/qt/bin/qmake -o Makefile.webkit_server /Library/Ruby/Gems/2.3.0/gems/capybara-webkit-1.11.1/src/webkit_server.pro ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile.webkit_server 
Project ERROR: No QtWebKit installation found. QtWebKit is no longer included with Qt 5.6, so you may need to install it separately.
make: *** [sub-src-webkit_server-pro-make_first-ordered] Error 3
Command 'make' failed

current directory: /Library/Ruby/Gems/2.3.0/gems/capybara-webkit-1.11.1
make "DESTDIR=" clean
cd src/ && ( test -e Makefile.webkit_server || /usr/local/opt/qt/bin/qmake -o Makefile.webkit_server /Library/Ruby/Gems/2.3.0/gems/capybara-webkit-1.11.1/src/webkit_server.pro ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile.webkit_server clean
Project ERROR: No QtWebKit installation found. QtWebKit is no longer included with Qt 5.6, so you may need to install it separately.
make: *** [sub-src-webkit_server-pro-clean-ordered] Error 3

current directory: /Library/Ruby/Gems/2.3.0/gems/capybara-webkit-1.11.1
make "DESTDIR="
cd src/ && ( test -e Makefile.webkit_server || /usr/local/opt/qt/bin/qmake -o Makefile.webkit_server /Library/Ruby/Gems/2.3.0/gems/capybara-webkit-1.11.1/src/webkit_server.pro ) && /Library/Developer/CommandLineTools/usr/bin/make -f Makefile.webkit_server 
Project ERROR: No QtWebKit installation found. QtWebKit is no longer included with Qt 5.6, so you may need to install it separately.
make: *** [sub-src-webkit_server-pro-make_first-ordered] Error 3

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.3.0/gems/capybara-webkit-1.11.1 for inspection.
Results logged to /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-17/2.3.0/capybara-webkit-1.11.1/gem_make.out

エラーが発生。なんでや、、
なんでエラーが発生しているのかもわからず、このエラーに数日費やしました。。

色々調べていくと、言われた通りにコマンドを実行するだけでは残念ながらインストールがうまくできず、依存関係のあるコマンドたちを一つずつインストールしていく必要がありました。

問題点

依存関係のあるコマンドたちをインストールしていない

解決方法

順にコマンドを実行していってください。
$ brew tap cartr/qt4
$ brew tap-pin cartr/qt4
$ brew install qt@4  ※qt4をインストールしていきます。

==> Installing qt@4 from cartr/qt4
==> Downloading https://dl.bintray.com/cartr/autobottle-qt4/qt@4-4.8.7_5.high_sierra.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/a36630189041fd5938fba4590927756877cf6534612588cbb7952994490a38b3?response-content-disposition=att
######################################################################## 100.0%
==> Pouring qt@4-4.8.7_5.high_sierra.bottle.tar.gz
==> Caveats
We agreed to the Qt opensource license for you.
If this is unacceptable you should uninstall.

Phonon is not supported on macOS Sierra or with Xcode 8.

WebKit is no longer included for security reasons. If you absolutely
need it, it can be installed with `brew install qt-webkit@2.3`.
==> Summary
🍺  /usr/local/Cellar/qt@4/4.8.7_5: 2,963 files, 86.1MB

$ brew install qt-webkit@2.3 ※左記をインストールして!と言われているので、コマンドを実行していきましょう。

==> Installing qt-webkit@2.3 from cartr/qt4
==> Downloading https://dl.bintray.com/cartr/autobottle-qt4/qt-webkit@2.3-2.3.4_1.high_sierra.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/5dd5a1c9a191e9d2c4245cad33db18044fcb501f9af3128916827eba44282ebb?response-conten
######################################################################## 100.0%
==> Pouring qt-webkit@2.3-2.3.4_1.high_sierra.bottle.tar.gz
==> Caveats
This is years old and really insecure. You shouldn't
use it if you don't absolutely trust the HTML files 
you're using it to browse. Definely avoid using it
in a general-purpose Web browser.

Also, video doesn't work.
==> Summary
🍺  /usr/local/Cellar/qt-webkit@2.3/2.3.4_1: 53 files, 25.5MB

$ sudo gem install capybara-webkit -v '1.11.1' 
※最後にこちらのコマンドを実行すれば、capybara-webkitのインストールが完了です。

$ bundle installもお忘れなく実行していきましょう。環境構築完了まであと少しです!

備考

$ brew install qt@不要なバージョン
不要にインストールしてしまったqtは、上記コマンドを参考にアンインストールしてしまいましょう。