58

I try to clone this repo and run bundle install. The bundle process failed and throw this error:

    ...
    Installing nokogiri 1.6.2.1 with native extensions
    Building nokogiri using packaged libraries.

    Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

        /Users/zulhilmizainudin/.rvm/rubies/ruby-2.2.0/bin/ruby -r ./siteconf20151130-43880-pntnc6.rb extconf.rb
    Building nokogiri using packaged libraries.
    -----
    libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
    -----
    *** 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/zulhilmizainudin/.rvm/rubies/ruby-2.2.0/bin/$(RUBY_BASE_NAME)
        --help
        --clean
        --use-system-libraries
        --enable-static
        --disable-static
        --with-zlib-dir
        --without-zlib-dir
        --with-zlib-include
        --without-zlib-include=${zlib-dir}/include
        --with-zlib-lib
        --without-zlib-lib=${zlib-dir}/lib
        --enable-cross-build
        --disable-cross-build

    extconf failed, exit code 1

    Gem files will remain installed in /Users/zulhilmizainudin/.rvm/gems/ruby-2.2.0/gems/nokogiri-1.6.2.1 for inspection.
    Results logged to /Users/zulhilmizainudin/.rvm/gems/ruby-2.2.0/extensions/x86_64-darwin-14/2.2.0-static/nokogiri-1.6.2.1/gem_make.out
    An error occurred while installing nokogiri (1.6.2.1), and Bundler cannot continue.
    Make sure that `gem install nokogiri -v '1.6.2.1'` succeeds before bundling.

Then I try to run this:

gem install nokogiri -v '1.6.2.1'

And now I get this error:

Building native extensions.  This could take a while...
Building nokogiri using packaged libraries.
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /Users/zulhilmizainudin/.rvm/rubies/ruby-2.2.0/bin/ruby -r ./siteconf20151130-43942-1axq4sj.rb extconf.rb
Building nokogiri using packaged libraries.
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** 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/zulhilmizainudin/.rvm/rubies/ruby-2.2.0/bin/$(RUBY_BASE_NAME)
    --help
    --clean
    --use-system-libraries
    --enable-static
    --disable-static
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --enable-cross-build
    --disable-cross-build

extconf failed, exit code 1

Gem files will remain installed in /Users/zulhilmizainudin/.rvm/gems/ruby-2.2.0/gems/nokogiri-1.6.2.1 for inspection.
Results logged to /Users/zulhilmizainudin/.rvm/gems/ruby-2.2.0/extensions/x86_64-darwin-14/2.2.0-static/nokogiri-1.6.2.1/gem_make.out

I tried to follow this answer but I still get the same error above.

I also try to uninstall and install my brew again (based on this answer) and it's still same.

Also, I try this solution but still get the error.

What should I do now to make sure this nokogiri gem installed successfully?

Note: I'm using OSX 10.11.1 El Capitan.

Community
  • 1
  • 1
Zulhilmi Zainudin
  • 9,017
  • 12
  • 62
  • 98

15 Answers15

121

Run these commands:

gem uninstall nokogiri
xcode-select --install
gem install nokogiri

source: http://www.nokogiri.org/tutorials/installing_nokogiri.html#mac_os_x

sometimes mac updates can break xcode CLI so reinstalling can fix the issue: https://github.com/sparklemotion/nokogiri/issues/1445

pthamm
  • 1,841
  • 1
  • 14
  • 17
32

What worked for me (on macOS Sierra) was a combination of Sam's answer and the following:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries
Community
  • 1
  • 1
spencer.sm
  • 19,173
  • 10
  • 77
  • 88
  • 1
    This worked for me trying to install nokogiri -v 1.8.0 – margo Jun 21 '17 at 16:46
  • I used the same thing to install rails and it worked! Thanks. – Andre Simon Sep 21 '17 at 01:07
  • 1
    this worked for me, just make sure to confirm the folder because mine was /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/libxml2 – Emad Jan 11 '19 at 17:11
30

I had a similar issue with 1.6.7.2 when bundle installing on codeship with ruby 2.3.

What worked for me was adding:

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

before

bundle install

Jay
  • 3,857
  • 2
  • 23
  • 25
20

If you're using bundle:

brew install libxml2

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

from http://www.nokogiri.org/tutorials/installing_nokogiri.html

Andy Ray
  • 30,372
  • 14
  • 101
  • 138
13

Try this

sudo apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev

And then install Nokogiri

sudo gem install nokogiri
Lalana Chamika
  • 607
  • 12
  • 17
10

I did everything in the other answers, but had to do one more thing:

  1. Open Xcode
  2. Click "Agree"
  3. Wait a bit, close Xcode
  4. Rejoice
Sam Selikoff
  • 12,366
  • 13
  • 58
  • 104
6

Seems like this is due to nokogiri 1.6.2.1 specific problem.

I add this inside my Gemfile:

gem 'nokogiri', '~> 1.6', '>= 1.6.7'

And run bundle update nokogiri and then bundle. Everything now working fine.

Zulhilmi Zainudin
  • 9,017
  • 12
  • 62
  • 98
2

It may also be an issue with the anaconda version of some of the libs.

$ conda deactivate
$ gem uninstall nokogiri
$ gem install nokogiri
$ conda activate base

worked for me.

1

I had the similar issue. The reason was outdated xcode.

If you run brew doctor you might see it. Just open AppStore, got to updates tab and update your xcode.

  • `brew doctor` told me about newer Command Line Tools release and gave instructions on how to force update it. That solved the problem for me: `sudo rm -rf /Library/Developer/CommandLineTools && sudo xcode-select --install` – stacker-baka Oct 10 '21 at 10:09
1

Spencer's answer worked for me, but I also needed to use the -n parameter to overcome the permission issue documented here.

So in the end, the command that worked for me was:

gem install -n /usr/local/bin nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libxml2 --use-system-libraries
Drew Jex
  • 845
  • 2
  • 13
  • 24
1

If nothing above works, Try deleting Gemfile.lock, and do reinstalling of gems.

  • 1
    You should be careful deleting `Gemfile.lock`. Not only will you reinstall the gems. But executing `bundle install` will update the versions of those gems – Christian Fazzini Mar 22 '20 at 10:41
  • Deleting the `Gemfile.lock` file helped me fix the issue after installing Nokogiri natively as instructed on [Nokogiri official website](https://nokogiri.org/tutorials/installing_nokogiri.html) – Angelo Igitego Dec 20 '21 at 19:24
0

Deleting nokogiri in rbenv gem folder and reinstalling solved it for me.

Kiryl Plyashkevich
  • 2,157
  • 19
  • 18
0

I had the same issue while updating to xcode 10. I resolved it with the following steps :

  1. xcode-select --install
  2. bundle install --deployment
  3. gem install nokogiri
developer01
  • 311
  • 2
  • 6
  • 20
Ash
  • 5,525
  • 1
  • 40
  • 34
0

This helped me fix this

  • I reinstalled Xcode and directed xcode-select to its path
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

ref: https://stackoverflow.com/a/17980786/3861525

trojanh
  • 97
  • 9
-1

Github Answer

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

bundle install
Dharman
  • 30,962
  • 25
  • 85
  • 135