JZ.
JZ.

Reputation: 21877

Install a specific gem version with configuration options

I'm trying to install an old version of nokogiri, but I am having trouble specifying the format:

I'm using

gem install nokogiri -v 1.5.2 -- --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

but this is not the correct syntax. Do you know how to do this?

ERROR

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

        /Users/boris/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
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... no
checking for iconv_open() in -liconv... no
-----
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:

Upvotes: 1

Views: 3246

Answers (2)

JZ.
JZ.

Reputation: 21877

I simply installed homebrew, and used the brew link inconv to create the necessary symlinks to compile the gem.

$brew link libiconv
Linking /usr/local/Cellar/libiconv/1.13.1... 18 symlinks created
$gem install nokogiri -v 1.5.2 

Upvotes: 0

matt
matt

Reputation: 79733

You’ve only specified the lib dir to use, try specifying the include dir as well:

gem install nokogiri -v 1.5.2 -- \
                 --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib \
                 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include

You may be able to specify both together:

gem install nokogiri -v 1.5.2 -- \
                 --with-iconv-dir=/usr/local/Cellar/libiconv/1.13.1

It looks like there was some changes as to how Nokogiri finds iconv between versions 1.5.2 and 1.5.5, which may explain why you’re able to install the latest version but not 1.5.2.

Upvotes: 1

Related Questions