Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
# using rvm with ruby-1.8.7-p249
# latest version 2.7.7 2010-06-17
brew install libxml2
# installing libxslt from source code
tar xvfz libxslt-1.1.26.tar.gz
cd libxslt-1.1.26
./configure --prefix=/usr/local/Cellar/libxslt/1.1.26 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.7.7
sudo make install
# installing nokogiri with this new compiled libs
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.7/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.7/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26

sekrett commented Oct 3, 2011

libxml is 2.7.8 now and it works too

this save me half of the problem~
another half, Gemfile & bundle install problem
below is the fix

$ bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.7.7/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.7/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26

of course, need change the version

credit :

shenry commented Dec 23, 2011

Thanks for the gist, I had to add

--with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib

... apparently in my case the problem really was libiconv.

Thank you, and for me on OSX 10.7.2 Lion, I needed:

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.7/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.7/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib

Wiping the sweat off my brow...

@sjtipton you are a life saver! For others that follow this will work for OS X 10.7.2
running with ruby 1.9.3p0
currently libxml2 2.7.8

brew install libxml2

follow above but adjust accordingly
installing libxslt from source code

tar xvfz libxslt-1.1.26.tar.gz
cd libxslt-1.1.26
./configure --prefix=/usr/local/Cellar/libxslt/1.1.26 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.7.8
sudo make install

If your like me and did not think to check if you had libiconv 1.14 <-- be sure this is current

brew install libiconv


gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib

Thanks to the above commenters!

Thank you so much for the instruction!

I also want to add a bit side comment: If you upgrade to Mac OS Lion AFTER you install the RVM, ruby, DevCoder, you need to refresh them:

I've found libiconv lurking in my libxslt. And the Nokogiri installation instructions only recommend you instal libxml2 and libxslt. So on my (pretty standard) OS X Mountain Lion install, this works for me:

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-iconv-include=/usr/local/Cellar/libxslt/1.1.26/include --with-iconv-lib=/usr/local/Cellar/libxslt/1.1.26/lib

I really try to avoid gems that depend on Nokogiri because this always trips me up and I find it incredibly annoying.

haggen commented Jun 4, 2014

Nothing worked with me.

$ brew install libiconv


Error: No available formula for libiconv
Apple distributes libiconv with OS X, you can find it in /usr/lib.
Some build scripts fail to detect it correctly, please check existing
formulae for solutions.

And any attempt to build libiconv from source returns:

builddir="`pwd`"; cd libcharset && /Applications/ all && /Applications/ install-lib libdir="$builddir/lib" includedir="$builddir/lib"
/bin/sh: line 0: cd: libcharset: No such file or directory
make: *** [lib/localcharset.h] Error 1

pkpp1233 commented Jul 8, 2014

same problem as haggen

arojoal commented Jul 9, 2014

same problem for me.

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/rojalval/.rvm/rubies/ruby-2.0.0-p481/bin/ruby extconf.rb

Building nokogiri using packaged libraries.

libiconv is missing. please visit 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:

extconf failed, exit code 1

arojoal commented Jul 9, 2014

I've solved it by installing XCode ComandLine tools:

xcode-select --install

Thanks for:
xcode-select --install

It solved the problem for me too

As a self-contained solution, I wrote a Ruby script that just installs Nokogiri using Homebrew's libraries instead of Apple's. It seems to flawlessly solve the issue on normal systems; I've used it twice without any issues. You can choose whether to install using either RubyGems or Bundler. Contributions or suggestions are welcome!

I can confirm xcode-select --install worked for me. Thanks @arojoal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment