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

## はじめに
タイトルのとおり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`が削除される直前のコミットから無理やり引っ張ってくる必要があるとのことでした。（[この記事](https://monmon.hatenablog.com/entry/2019/12/24/capybara-webkit-on-macos)を参考にしました）

```:ターミナル
$ 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