Created — forked from fabioyamate/nokogiri

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist
View nokogiri
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# using rvm with ruby-1.8.7-p249
 
# latest version 2.7.7 2010-06-17
brew install libxml2
 
# installing libxslt from source code
wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz
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
make
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

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 : https://gist.github.com/1344331

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

wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz
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
make
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

Finally

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: http://www.fakingfantastic.com/2010/11/26/fixing-the-you-have-to-install-development-tools-first-error-with-nokogiri/

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

Nothing worked with me.

$ brew install libiconv

Returns:

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/Xcode.app/Contents/Developer/usr/bin/make all && /Applications/Xcode.app/Contents/Developer/usr/bin/make 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

same problem as haggen

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

I've solved it by installing XCode ComandLine tools:

xcode-select --install

@arojoal
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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.