What is a robust installation process for Nokogiri (on Ubuntu)?

nokogiri, ruby, ubuntu, ubuntu-12.04

Solution

I have also experienced the same problem with rvm, even though I had done the following, as per documentation:

- `sudo apt-get install libxslt-dev libxml2-dev`

- `rvm pkg libxml2` and `rvm pkg libxslt`

The only way I could get this solved was, after a lengthy investigation:

- Uninstall the ruby installation: `rvm remove 1.9.3`

- Delete all `libxslt*` and `libxml2*` libs from `~/.rvm/usr/lib` if you had previously done `rvm pkg ...`

- Reinstall ruby: `rvm install 1.9.3`

Reinstalling after the `apt-get` commands seems to be the only way of getting this to work. Also, ensuring the libs installed with `rvm pkg` don’t interfere helped.

When everything else fails...

If everything else fails and you absolutely need the gem installed, you can also rebuild `nokogiri` by applying a simple patch — provided that you have all build tools installed, and with the caveat that this will install the latest and potentially unstable code:

- `git clone git://github.com/sparklemotion/nokogiri`

- get patch from this gist and save it as `x86_64.patch` in the `nokogiri` folder.

- Apply patch: `patch -p1 < x86_64.patch`

- Rebuild: `rake native gem` — this should build the gem in the `pkg/` folder

- Install the gem using `gem install pkg/nokogiri-<version>-x86_64-linux.gem`

Problem

I tried to install Nokogiri on my Ubuntu 12.04 system, and got an error that said "`libxslt is missing`", but the `libxslt-dev` and `libxml2-dev` are installed. Is there a robust installation process? How can I check the links to dependent libraries? I used RVM, and the RVM pkg is installed too. ``` ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. /home/victor/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb checking for libxml/parser.h... yes checking for libxslt/xslt.h... yes checking for libexslt/exslt.h... yes checking for iconv_open() in iconv.h... yes checking for xmlParseDoc() in -lxml2... yes checking for xsltParseStylesheetDoc() in -lxslt... no ----- libxslt 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 --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=/home/victor/.rvm/rubies/ruby-1.9.3-p125/bin/ruby --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --with-iconv-dir --without-iconv-dir --with-iconv-include --without-iconv-include=${iconv-dir}/include --with-iconv-lib --without-iconv-lib=${iconv-dir}/lib --with-xml2-dir --without-xml2-dir --with-xml2-include --without-xml2-include=${xml2-dir}/include --with-xml2-lib --without-xml2-lib=${xml2-dir}/lib --with-xslt-dir --without-xslt-dir --with-xslt-include --without-xslt-include=${xslt-dir}/include --with-xslt-lib --without-xslt-lib=${xslt-dir}/lib --with-libxslt-config --without-libxslt-config --with-pkg-config --without-pkg-config --with-libxml-2.0-config --without-libxml-2.0-config --with-libiconv-config --without-libiconv-config --with-xml2lib --without-xml2lib --with-xsltlib --without-xsltlib Gem files will remain installed in /home/victor/.rvm/gems/ruby-1.9.3-p125@dradis/gems/nokogiri-1.5.4 for inspection. Results logged to /home/victor/.rvm/gems/ruby-1.9.3-p125@dradis/gems/nokogiri-1.5.4/ext/nokogiri/gem_make.out enter code here ```

Original source