Install Nokogiri 1.6.1 under Ruby 2.0.0p353 (rvm based installation) fails (OSX Mavericks)?
Asked Answered
O

5

7

I've tried to install Nokogiri 1.6.1 under Ruby and RVM but is failing with the following error:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/lmo0/.rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb 
Extracting libxml2-2.8.0.tar.gz into tmp/x86_64-apple-darwin13.0.0/ports/libxml2/2.8.0... OK
Running 'configure' for libxml2 2.8.0... OK
Running 'compile' for libxml2 2.8.0... OK
Running 'install' for libxml2 2.8.0... OK
Activating libxml2 2.8.0 (from /Users/lmo0/.rvm/gems/ruby-2.0.0-p353/gems/nokogiri-1.6.1/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0)...
Extracting libxslt-1.1.26.tar.gz into tmp/x86_64-apple-darwin13.0.0/ports/libxslt/1.1.26... OK
Running 'configure' for libxslt 1.1.26... ERROR, review 'tmp/x86_64-apple-darwin13.0.0/ports/libxslt/1.1.26/configure.log' to see what happened.
*** 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=/Users/lmo0/.rvm/rubies/ruby-2.0.0-p353/bin/ruby
/Users/lmo0/.rvm/gems/ruby-2.0.0-p353/gems/mini_portile-0.5.2/lib/mini_portile.rb:265:in `block in execute': Failed to complete configure task (RuntimeError)
    from /Users/lmo0/.rvm/gems/ruby-2.0.0-p353/gems/mini_portile-0.5.2/lib/mini_portile.rb:257:in `chdir'
    from /Users/lmo0/.rvm/gems/ruby-2.0.0-p353/gems/mini_portile-0.5.2/lib/mini_portile.rb:257:in `execute'
    from /Users/lmo0/.rvm/gems/ruby-2.0.0-p353/gems/mini_portile-0.5.2/lib/mini_portile.rb:65:in `configure'
    from /Users/lmo0/.rvm/gems/ruby-2.0.0-p353/gems/mini_portile-0.5.2/lib/mini_portile.rb:108:in `cook'
    from extconf.rb:101:in `block in <main>'
    from extconf.rb:131:in `call'
    from extconf.rb:131:in `block in <main>'
    from extconf.rb:122:in `tap'
    from extconf.rb:122:in `<main>'


Gem files will remain installed in /Users/lmo0/.rvm/gems/ruby-2.0.0-p353/gems/nokogiri-1.6.1 for inspection.
Results logged to /Users/lmo0/.rvm/gems/ruby-2.0.0-p353/gems/nokogiri-1.6.1/ext/nokogiri/gem_make.out
Orthochromatic answered 2/1, 2014 at 19:58 Comment(12)
What's in tmp/x86_64-apple-darwin13.0.0/ports/libxslt/1.1.26/configure.log?Disherison
Do you have Xcode installed or the Xcode tools?Winding
Do you have both libxml2 and libxslt installed?Winding
checking for grep that handles long lines and -e... configure: error: no acceptable grep could be found in /Users/lmo0/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.6.1/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/bin:/Users/lmo0/.rvm/gems/ruby-2.0.0-p247/bin:/Users/lmo0/.rvm/gems/ruby-2.0.0-p247@global/bin:/Users/lmo0/.rvm/rubies/ruby-2.0.0-p247/bin:/Users/lmo0/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sOrthochromatic
You might want to try installing grep via homebrew... That may help with your problem.Disherison
installing a GNU grep (brew install grep) github.com/sparklemotion/nokogiri/issues/935Orthochromatic
it seems that running homebrew install grep did actually add ggrep to /usr/local/bin and now need to just create a symlinkOrthochromatic
grep is built into Mac OS. There's absolutely no reason to install an additional instance of it. Type which grep at the command-line. If it doesn't show up, your PATH is messed up, or you somehow deleted it.Laudatory
well it seems that there is a problem with the grep that comes with osx mavericks and adding the GNU grep just solved my problem. There is an explanation on the Nokogiri github project that lead me to this solution. github.com/sparklemotion/nokogiri/issues/935Orthochromatic
Not sure if the problem, but you running Mac OS Maverick? Did you update Xcode? Open and accept the the new rules? And try again ...Summons
@Orthochromatic Thx. Your suggestion worked for me and I duplicated it as an answer for visibility (since I've probably spent way too much time on this multiple times now).Overword
Possible duplicate of nokogiri gem installation errorJeremiad
O
7

Check your grep version and install latest via brew:

$ grep --version
grep (BSD grep) 2.5.1-FreeBSD

$ brew install grep --default-names

# If above fails, you probably need to tap
$ brew tap homebrew/dupes
$ brew install grep --default-names

$ grep --version
grep (GNU grep) 2.14.56-1e3d

From (this nokogiri issue)[https://github.com/sparklemotion/nokogiri/issues/935]: "recent versions of OSX come with BSD grep, while older ones came with GNU grep. And that, your build script, perhaps requires GNU grep"

Stolen from Maverick's comment and duplicated here as an answer and not a comment because I've now run into this issue several times and would love to save someone else the headache. =X

Overword answered 1/2, 2014 at 17:55 Comment(1)
after running brew install grep --default-names, I had to close and re-open my terminal before grep --version showed the GNU version.Strumpet
P
3

You can try the solution which I used so far to fix the same...

Remove all older libxml-ruby and nokogiri

use below command for the same

sudo gem uninstall nokogiri libxml-ruby

then you can try out the version of nokogiri, was having issue. THat should works perfect.

sudo gem install nokogiri -v '1.6.1' 

Much similar answer reported by Dan but some little bit change. Thanks.

Pinkham answered 7/3, 2014 at 6:23 Comment(2)
I had similar issues and ruby -v ; gem i -i xxx nokogiri -v '1.6.2.1' worked well.Inflexed
This was earlier solution, may be they have released next version 1.6.2.1. thanks for sharing!Pinkham
I
0

I wrote a post on this after dealing with it myself. No need for homebrew.

There was a few issues I ran into, the first one being that the development tools cannot be found, and the second one that the libxml is too old.

Run the following commands in the rubyconsole:

$ sudo xcode-select -switch /Library/Developer/CommandLineTools
$ gem uninstall nokogiri libxml-ruby
$ gem install nokogiri
Inert answered 13/2, 2014 at 14:26 Comment(0)
K
0

Turned out there is a bit simpler solution:

Remove this line in your ~/.bashrc or ~/.bash_profile file:

GREP_OPTIONS="--color=always"

with this one:

export GREP_OPTIONS="--color=auto"

This way you won't need to install any duplicates. Thanks to MrPowers @ Nokogiri Issues.

Kingship answered 18/3, 2014 at 12:36 Comment(0)
T
-1

manually ./configure 'include' and 'lib' locations helped me out. libxml2 source layout is a bit strange, so i ended up with alike options:

gem install nokogiri -- --use-system-libraries --with-xslt-dir=/usr/local/opt/libxslt --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib

of course, version numbers depend upon what is actually installed. at the time of this writing there version were in the brew.

in my case /usr/local/Cellar/libxml2/2.9.1/include/libxml2 contains a single directory named libxml and /usr/local/Cellar/libxml2/2.9.1/lib contains libxml2.2.dylib libxml2.a libxml2.dylib pkgconfig xml2Conf.sh: these are what the script is looking for, no other combination made it compile using system libraries.

using homebrew nokogiri can be installed with neither outdated nor incompatible (recent) libxml2 and libxslt libraries as pointed out in this gist. working fine and fast for me.

Tracheitis answered 18/9, 2014 at 3:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.