2015年11月30日月曜日

(Mac)Nokogiri のインストールでエラーが出る

Rails のインストールをしようとした所、エラーが発生してインストールできない状態になった。
よくよくログを見てみると nokogiri のインストールで失敗しているようだ。

$ gem install nokogiri
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.
    /Users/zeonic/.rbenv/versions/2.2.3/bin/ruby -r ./siteconf20151129-59395-c8vrlu.rb extconf.rb
checking if the C compiler accepts ... yes
checking if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... no
Building nokogiri using packaged libraries.
checking for gzdopen() in -lz... yes
checking for iconv... no
-----
libiconv is missing.  Please locate mkmf.log to investigate how it is failing.
-----
*** extconf.rb failed ***
...

この場合は、nokogiri を個別にインストールしてから、rails のインストールを行えば良いとの記事を各所で見かけたが、nokogiri の単体インストールがうまくいかない。
ところで、nokogiri とは?
Ruby のスクレイピング(HTMLやXMLの構造を解析して、特定の要素を指定しやすい形に加工する)ライブラリのことらしい。
よく書かれている内容にそって、実行してみたんだけどなぁ。。。と思ったのがエラーは変わらないので、内容を再度咀嚼しながら確認。
結果的に必要なライブラリパスを直接指定する方法でうまく行ったので経過を載せておきます。
  1. Homebrew のアップデート

    $ brew update
    $ brew upgrade

  2. 必要ライブラリ用のリポジトリを取得

    $ brew tap homebrew/dupes

  3. ライブラリのインストール

    $ brew install libxml2 libxslt libiconv

  4. ライブラリをリンク

    $ brew link --force libxml2 libxslt libiconv

  5. nokogiri のインストール

    $ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri --
    --use-system-libraries
    --with-iconv-dir="$(brew --prefix libiconv)"
    --with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config"
    --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"

  6. rails のインストール

    $ gem install rails

ひとまず上手く行ったけど、一発目の環境設定でつまずくと、やる気なくすなぁ。
Written with StackEdit.

0 件のコメント:

コメントを投稿