はじめに
タイトルのとおり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