LoginSignup
5
6

More than 5 years have passed since last update.

Yosemite の gem install nokogiri でエラー(Xcode 7環境)

Posted at

OS X Yosemite 10.10.5且つ Xcode 7.1.1がインストールされている環境(更に言えば rbenv と anyenv 使ってます)で、久しぶりに Nokogiri をインストール(アップデート)したところ、エラーが出ました。

$ gem install nokogiri -v '1.6.6.4'
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /Users/riocampos/.anyenv/envs/rbenv/versions/2.1.5/bin/ruby extconf.rb
checking if the C compiler accepts ... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/riocampos/.anyenv/envs/rbenv/versions/2.1.5/bin/ruby
    --help
    --clean
/Users/riocampos/.anyenv/envs/rbenv/versions/2.1.5/lib/ruby/2.1.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/riocampos/.anyenv/envs/rbenv/versions/2.1.5/lib/ruby/2.1.0/mkmf.rb:571:in `block in try_compile'
    from /Users/riocampos/.anyenv/envs/rbenv/versions/2.1.5/lib/ruby/2.1.0/mkmf.rb:522:in `with_werror'
    from /Users/riocampos/.anyenv/envs/rbenv/versions/2.1.5/lib/ruby/2.1.0/mkmf.rb:571:in `try_compile'
    from extconf.rb:80:in `nokogiri_try_compile'
    from extconf.rb:87:in `block in add_cflags'
    from /Users/riocampos/.anyenv/envs/rbenv/versions/2.1.5/lib/ruby/2.1.0/mkmf.rb:621:in `with_cflags'
    from extconf.rb:86:in `add_cflags'
    from extconf.rb:337:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /Users/riocampos/.anyenv/envs/rbenv/gems/2.1.0/gems/nokogiri-1.6.6.4 for inspection.
Results logged to /Users/riocampos/.anyenv/envs/rbenv/gems/2.1.0/extensions/x86_64-darwin-13/2.1.0/nokogiri-1.6.6.4/gem_make.out

世間的には多発していると聞いていたのですが私は初体験。
「これが噂に聞く Nokogiri のインストールエラーかっ!」
ということで軽く検索。

Xcode 7.1.1に MacOSX10.10.sdk もう無いんだけど…

これらから「 Xcode のライブラリの libxml2 を使わないとダメなのかな?」と思ったのだけど、 Xcode 7.1.1には Yosemite 用の MacOSX10.10.sdk はもう入ってない。「んじゃ MacOSX10.10.sdk をどこかから取ってこなきゃダメ?」
あと、私は gem install したいのだけど、上の2つはどちらも bundle install してる。のでちょっと違うっぽい。

Nokorigi 総本山に情報はあるかな?

MacOSX10.10.sdk を取りに行くのが面倒なので、ひとまず Nokorigi のサイトで情報が無いか検索。

Here’s how to ignore Nokogiri’s vendored libraries and use your installed system libraries

gem install nokogiri -- --use-system-libraries

Or, if you’re using Bundler:

bundle config build.nokogiri --use-system-libraries
bundle install

とあったので、一つ目に従って( gem ではなく nokogiri インストールオプションに) --use-system-libraries を渡すようにしてみた。

あっけなく成功

$ gem install nokogiri -- --use-system-libraries
Building native extensions with: '--use-system-libraries'
This could take a while...
Successfully installed nokogiri-1.6.6.4
1 gem installed

あっけなくインストール成功。

これだけで済む場合もあるようで。
あまり参考にならない気がしますが、いちおう記録しておきます。

5
6
0

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
5
6