LoginSignup
14
15

More than 5 years have passed since last update.

Mac OSX YosemiteにnokogiriをインストールするにはARCHFLAGSの指定が必要

Last updated at Posted at 2015-03-08

brewで必要なライブラリを入れてそれらを使ってnokogiriをインストールする。
gem install nokogiriでハマったのでメモ。

バージョン

OS X Yosemite 10.10.2
ruby 2.0.0p481
gem 2.4.6
Bundler version 1.7.6
Homebrew 0.9.5
xcode-select version 2339

必要なツール類をインストール

x-codeのcliインストール

xcode-select --install
homebrewで必要なライブラリをインストール

インストール後にlinkを再作成。

$ sudo brew tap homebrew/dupes
$ sudo brew install libxml2 libxslt libiconv
$ sudo brew unlink --force libxml2 && sudo brew link --force libxml2
$ sudo brew unlink --force libxslt && sudo brew link --force libxslt
$ sudo brew unlink --force libiconv && sudo brew link --force libiconv

gemでnokogiriをインストール

ARCHFLAGSを指定して内部ライブラリを使ってnokogiriをインストールすると無事成功。
現在最新の1.6.6.2は入らなかったので1.5.11を使う。

$ sudo ARCHFLAGS="-arch x86_64"  gem install nokogiri -v 1.5.11  -- --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"

Building native extensions with: '--use-system-libraries --with-iconv-dir=/usr/local/opt/libiconv --with-xml2-config=/usr/local/opt/libxml2/bin/xml2-config --with-xslt-config=/usr/local/opt/libxslt/bin/xslt-config'
This could take a while...
Successfully installed nokogiri-1.5.11
1 gem installed

エラーの例

libxml2が読み込めない。他にもiconvが読み込めない場合もある。

sudo gem install nokogiri  -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-config="$(brew --prefix libxml
2)/bin/xml2-config" --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"
Building native extensions with: '--use-system-libraries --with-iconv-dir=/usr/local/opt/libiconv --with-xml2-config=/usr/local/opt/libxml2/bin/xml2-config --with-xslt-
config=/usr/local/opt/libxslt/bin/xslt-config'
This could take a while...
ERROR:  Error installing nokogiri:
        ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20150308-3032-wc2kc7.rb extconf.rb --use-system-libraries --with-iconv-dir=/usr/loc
al/opt/libiconv --with-xml2-config=/usr/local/opt/libxml2/bin/xml2-config --with-xslt-config=/usr/local/opt/libxslt/bin/xslt-config
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 system libraries.
libxml2 version 2.6.21 or later is required!

補足

ちょっと古そうだけどbundlerの設定を書き換えるスクリプトを見つけた。
Mac fix - Install Nokogiri gem on OS X 10.9 Mavericks
読み込んでおけば上の--use-system-libraries以降のオプションは不要。

$ curl -k https://gist.githubusercontent.com/SteveBenner/de51738222e92d606487/raw/7cd7c552894b86895189189bd340bdc6e7f68ddb/macfix1-install-nokogiri.rb|sudo ruby

またNOKOGIRI_USE_SYSTEM_LIBRARIES=1をセットしてgem installをしているドキュメントもあるのでもし動かなければお試しください。

14
15
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
15