Installing Nokogiri on Leopard
Nokogiri is a popular (and fast) XML parsing library for Ruby. One of the reasons that it's so fast is that it's written in C, and makes use of the excellent libxml2 and libxslt C libraries.
I just installed the Nokogiri Ruby gem on my Mac, which runs OS X 10.5.8 (i.e. Leopard). Imagine my surprise (given that I'm supposed to be running one of the most advanced operating systems in the world!) when Nokogiri printed this message in my terminal:
HI. You're using libxml2 version 2.6.16 which is over 4 years old and has plenty of bugs. We suggest that for maximum HTML/XML parsing pleasure, you upgrade your version of libxml2 and re-install nokogiri. If you like using libxml2 version 2.6.16, but don't like this warning, please define the constant I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 before requring nokogiri.
Good one, Apple.
Aaron Kalin tells us how to solve this problem on his blog, by compiling new versions of libxml2 and libxslt from source.
I'd rather use MacPorts. Taking Aaron's advice and modifying it for ports, here's what you do:
$ sudo port install libxml2 libxslt -d $ sudo gem install nokogiri -- \ --with-xml2-include=/opt/local/include/libxml2 \ --with-xml2-lib=/opt/local/lib
Yes, this post is largely here to remind me what to do next time this crops up. As you were...
I love feedback and questions — please get in touch on Twitter or leave a comment.