LoginSignup
3
1

More than 3 years have passed since last update.

【Rails】capybara-webkitが導入できなくててこずった話

Posted at

はじめに

タイトルのとおりcapybara-webkitが導入できなくててこずったので同じような境遇の方のためにメモとして残しておきます。

ここで書く手順は僕がうまくいかなかった道のりを書いているので、適切な手順でないことはご承知おきください。

ちなみにmacOSはCatalina バージョン10.15.5です。
(mojaveだとまた少し手順が違うらしい)

経緯

Capybara使って統合テストするぞ

JavaScriptが絡む処理をテストするにはcapybara-webkitを使う必要があるらしい

gem追加してbundle installしたらエラー出た\(^o^)/

どんなエラー?

ターミナルで次のように出ました。(一部なのでホントはもっと長いです)
Command 'qmake ' not available
qmakeなにそれ美味しいの?

調べてみるとqtなるものをインストールする必要があるらしい

qt導入

qtはHomebrewを使ってインストールできるらしいことがわかり試してみる

ターミナル
$ brew install qt

無事インストールされたので再びbundle installしてみる。

またもや同じエラー\(^o^)/

調べてみるとqt@5.5のバージョン指定が必要らしいです。

ちなみに僕はここでbrew link --force qtというコマンドを入力して何らかの何かが起こり、bundle installしたときに別のエラーが表示されるようになってしまいました。
一部だけ抜き取ると、Project ERROR: No QtWebKit installation found. QtWebKit is no longer included with Qt 5.6, so you may need to install it separately.というエラーです。

qt5.5導入

ターミナル
$ brew install qt@5.5

これでいけると思ったらエラーが…
Error: No available formula with the name "qt@5.5"

どうやらbrewではqt@5.5が削除されているため直接インストールすることはできないらしい。
brewのリポジトリのqt@5.5が削除される直前のコミットから無理やり引っ張ってくる必要があるとのことでした。(この記事を参考にしました)

ターミナル
$ brew update
$ cd $( brew --prefix )/Homebrew/Library/Taps/homebrew/homebrew-core
$ git checkout 9ba3d6ef8891e5c15dbdc9333f857b13711d4e97 Formula/qt@5.5.rb

これでUpdated 1 path from 741af0285fと出てくれば次のステップです。

僕はこれをやる前にxcodeのインストールが必要みたいな記事を見かけてxcodeをインストールしたのですが、やらなくても大丈夫っぽいです。

次こそ大丈夫だと思ってqt@5.5をインストールしてみます。

ターミナル
$ brew install qt@5.5

しかしまたしてもエラー
Error: unknown or unsupported macOS version: :mountain_lionと出てきます。

この場合Formula/qt@5.5.rbの記述を変更する必要があるみたいです。
(このことに気付かず右往左往してしまいました)

ターミナル
$ vi Formula/qt@5.5.rb

これでターミナルから直接テキスト編集します。
iで入力モードにし、depends_on :macos => :mountain_lionをコメントアウトします。

ターミナル
 # 変更前
 # OS X 10.7 Lion is still supported in Qt 5.5, but is no longer a reference
  # configuration and thus untested in practice. Builds on OS X 10.7 have been
  # reported to fail: <https://github.com/Homebrew/homebrew/issues/45284>.
  depends_on :macos => :mountain_lion
 
  # 変更後
  # OS X 10.7 Lion is still supported in Qt 5.5, but is no longer a reference
  # configuration and thus untested in practice. Builds on OS X 10.7 have been
  # reported to fail: <https://github.com/Homebrew/homebrew/issues/45284>.
  # depends_on :macos => :mountain_lion  # この行をコメントアウト

コメントアウトしたらescキーを押してから:wqで保存します。

これでqt@5.5をインストールできるはずです。

ターミナル
$ brew install qt@5.5

/usr/local/Cellar/qt@5.5/5.5.1_1: 7,330 files, 329.7MBこんな感じで表示されればOKです。

これでやっとcapybara-webkitをインストールできると思いました。
しかしまたエラーが返ってきます。トホホ…

qmakeを強制的にリンク

なにやらqmakeを強制的にリンクさせる必要があるとのこと。このへんの仕組みはさっぱりわかりません。
とりあえず記事に書いてあるとおり試してみます。

ターミナル
$ brew link --force qt@5.5

すると
Error: Could not symlink bin/lconvert
ガーン…なんでやねん

いろいろ試したところ次のようにしたらうまくいきました。
(もともと違うものにリンクされていたものを一旦解除しなきゃない的なこと?)

ターミナル
$ brew unlink qt

これのあとでもう一度先ほどのコマンドを実行します。

ターミナル
$ brew link --force qt@5.5

エラーも出ずうまく行ったようです。
以下のコマンドでバーションを確認してみます。

ターミナル
$ /usr/local/opt/qt@5.5/bin/qmake --version

これを実行して
Using Qt version 5.5.1 in /usr/local/Cellar/qt@5.5/5.5.1_1/libとなってればもう大丈夫です。ここにqt@5.5がいる必要があったということだと思います。

この後問題なくbundle installでcapybara-webkitを導入できました( ^ω^ )

参考記事

https://monmon.hatenablog.com/entry/2019/12/24/capybara-webkit-on-macos
https://obel.hatenablog.jp/entry/20200420/1587324600?utm_source=feed
https://qiita.com/306_san/items/3a09a5c5eed17065ce12

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1