Mac nokogiri 1.8.2 インストールができない現象を解決

こんにちは、kisseです。

最近、Railsで書かれたサービスに参加することになって、色々勉強しています。
今回は、突然nokogiriというgemがインストールできないので、テストサーバー起動できません的なエラーが出たので、その対処を共有します。

はじめに結論

公式のインストール方法を読もう!!!

結構、色々な人がこの件に関してつまづいているみたいで、ぐぐるとたくさんの情報が出てきます。
しかし、ブログとかだとその人のメモ書きのような記事も多いため、自分の環境ではうまくいかないことが多いです。




この記事の目標

とはいっても、公式のページは英語で記載されています。
僕の場合、読めるかと言えば問題なく読めるんですが、それでもめんどくさがって日本語の記事を探してしまったのがよくなかったです。。

この記事では、公式のページに行かなくて済むようなレベルで和訳&説明を行います!

インストール方法

macOSでのインストール方法を記載します。

まずは、RubyGemsとxcode comanndline toolsが最新版であるかを確認します。

$ gem update --system
$ xcode-select --install

その後にインストールできるかを確認します。

$ gem install nokogiri

これでインストールできれば成功です!
が、おそらくこのページにきている人はこの手順ではインストールできていないのではないでしょうか??
僕の場合では、この手順までではインストールすることができませんでした。

エラーメッセージを読むと、libxml2というライブラリを参照することができないために、インストールすることができないというメッセージが表示されました。
ここからは、nokogiriのインストール時にlibxml2というライブラリを参照させることを目標にします。

まずは、brewでlibxml2のインストールを行います。

$ brew install libxml2

つぎに、

  • gemコマンドで直接インストール
  • bundleを経由してインストール

のいずれかの方法で行います。

gemコマンドで直接インストールする場合には、以下のコマンドを実行します。

$ gem install nokogiri -- --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2

bundleを経由してインストールする場合には、以下のコマンドを実行します。

$ bundle config build.nokogiri --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2
$ bundle install

nokogiriのインストール時にオプションをつけます。
意味としては、macのシステムの方のbrewでインストールしたlibxml2のパスを指定しているようです。
試しに、

$ echo $(brew --prefix libxml2)

を実行してみたら、libxml2がインストールされているファイルパスが得られました。

僕の場合、ここまでの手順でインストールを行うことができました!




最後に

公式ページは困った時にはめっちゃ参考になります!
もしここまでの手順でインストールできなかった方は、公式のページを読みに行きましょう!

参考になったら幸いです、最後まで読んでいただきありがとうございます!

あわせて読みたい