bundle installを行った際に、以下のエラーが発生したので、解決法を備忘録として残します。
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
An error occurred while installing nokogiri
##環境
Rails 5.2.3
ruby 2.5.1
MacOS Catalina 10.15.1
##brew doctorでHomebrewの状況を確認
原因を調べたところ、Homebrewに問題がありそうでした。
なのでまずはHomebrewの状況を確認。
参考:https://qiita.com/SonoT/items/060c21e9866d5d9603e3
$ brew doctor
すると以下のWarningが返ってきました。
Warning: No developer tools installed.
Install the Command Line Tools:
xcode-select --install
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Warning: Broken symlinks were found. Remove them with `brew cleanup`:
##Warningを一つずつ解消していく
Warningの内容を一つずつ潰していきます。
と言っても、Warningに書いてある通りのコマンドを実行しただけです。
###Warning: No developer tools installed.
一つ目のWarning
Warning: No developer tools installed.
Install the Command Line Tools:
xcode-select --install
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
「developer tools がインストールされていないので、the Command Line Toolsをインストールしなさい」と書いてあります。
その下に入力すべきコマンドも表示されています。
これをそのままターミナルで入力
$ xcode-select --install
ポップアップが出てくるのでインストールをクリックします。
インストールにはだいぶ時間がかかるので注意してください。
僕は一度インストールに失敗しましたが、2回目で成功しました。
###Warning: Broken symlinks were found.
二つ目のWarning
参考:https://qiita.com/6592sho/items/b24766e203fb7a48b056
Warning: Broken symlinks were found. Remove them with `brew cleanup`:
「壊れたsymlinksがあるので、それらを取り除いてください」と書いてあります。
こちらも一緒に表示されているコードをそのままターミナルで入力します。
$ brew cleanup
このコマンドでHomebrewの古いformula(パッケージ)を削除しているようです。
参考:https://qiita.com/vintersnow/items/fca0be79cdc28bd2f5e4
これで上記二つのWarningが解消されました。
$ brew doctor
二つのwarningが消えているはずです。
ターミナルを一度閉じて、bundle installを行ったら無事コマンドが通りました。
##まとめ
bundle installで『An error occurred while installing nokogiri』エラーが発生した時の対処法をまとめるとこうなります。
①$ brew doctorでHomebrewの状況を確認
②出力されたWarningの内容を確認
③表示されたコマンドを入力してWarningを一つずつ解消