Failed to build gem native extension

431 views
Skip to first unread message

curt...@gmail.com

unread,
May 17, 2018, 8:42:27 AM5/17/18
to nokogiri-talk

Trying to install (on a Mac) as part of a Jekyll/Shopify/GH Pages project. Did the 'gem install nokogiri' instructions (as listed: http://www.nokogiri.org/tutorials/installing_nokogiri.html)e and got this error:

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


    current directory
: /Library/Ruby/Gems/2.3.0/gems/nokogiri-1.8.2/ext/nokogiri
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20180516-9149-w5pavc.rb extconf.rb
checking
if the C compiler accepts ... yes
checking
if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... no
Building nokogiri using packaged libraries.
Using mini_portile version 2.3.0
checking
for iconv.h... yes
checking
for gzdopen() in -lz... yes
checking
for iconv... yes

The subsequent 'Bundle Install' also fails.

Simple fix, I'm sure. Thanks in advance for any help!

Mike Dalessio

unread,
May 17, 2018, 8:43:47 AM5/17/18
to nokogiri-talk
Hello!

Thanks for asking this question. It looks like perhaps you haven't pasted *all* of the output from the failed installation, can you help us diagnose what's going on by including the full output?


--
You received this message because you are subscribed to the Google Groups "nokogiri-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nokogiri-tal...@googlegroups.com.
To post to this group, send email to nokogi...@googlegroups.com.
Visit this group at https://groups.google.com/group/nokogiri-talk.
For more options, visit https://groups.google.com/d/optout.

curt...@gmail.com

unread,
May 17, 2018, 3:10:19 PM5/17/18
to nokogiri-talk
Sure. Log files attached.


$ sudo gem install nokogiri
Password:

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


    current directory
: /Library/Ruby/Gems/2.3.0/gems/nokogiri-1.8.2/ext/nokogiri
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20180517-20794-nrlsaz.rb extconf.rb
checking
if the C compiler accepts ... yes
checking
if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... no

Building nokogiri using packaged libraries.
Using mini_portile version 2.3.0
checking
for iconv.h... yes
checking
for gzdopen() in -lz... yes
checking
for iconv... yes
************************************************************************
IMPORTANT NOTICE
:


Building Nokogiri with a packaged version of libxml2-2.9.7.


Team Nokogiri will keep on doing their best to provide security
updates
in a timely manner, but if this is a concern for you and want
to
use the system library instead; abort this installation process and
reinstall nokogiri
as follows:


    gem install nokogiri
-- --use-system-libraries
       
[--with-xml2-config=/path/to/xml2-config]
       
[--with-xslt-config=/path/to/xslt-config]


If you are using Bundler, tell it to use the option:


    bundle config build
.nokogiri --use-system-libraries
    bundle install


Note, however, that nokogiri is not fully compatible with arbitrary
versions of libxml2 provided
by OS/package vendors.
************************************************************************
Extracting libxml2-2.9.7.tar.gz into tmp/x86_64-apple-darwin17/ports/libxml2/2.9.7... OK
Running 'configure' for libxml2 2.9.7... OK
Running 'compile' for libxml2 2.9.7... ERROR, review '/Library/Ruby/Gems/2.3.0/gems/nokogiri-1.8.2/ext/nokogiri/tmp/x86_64-apple-darwin17/ports/libxml2/2.9.7/compile.log' to see what happened. Last lines are:
========================================================================
  CCLD     libxml2
.la
  CC       testdso
.lo
  CCLD     testdso
.la
  CC       xmllint
.o
  CCLD     xmllint
ld
: warning: ignoring file /usr/local/Cellar/xz/5.2.3/lib/liblzma.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/Cellar/xz/5.2.3/lib/liblzma.dylib
Undefined symbols for architecture i386:
 
"_lzma_auto_decoder", referenced from:
      _xz_head
in libxml2.a(xzlib.o)
 
"_lzma_code", referenced from:
      _xz_decomp
in libxml2.a(xzlib.o)
 
"_lzma_end", referenced from:
      ___libxml2_xzclose
in libxml2.a(xzlib.o)
 
"_lzma_properties_decode", referenced from:
      _is_format_lzma
in libxml2.a(xzlib.o)
ld
: symbol(s) not found for architecture i386
clang
: error: linker command failed with exit code 1 (use -v to see invocation)
make
[2]: *** [xmllint] Error 1
make
[1]: *** [all-recursive] Error 1
make
: *** [all] Error 2
========================================================================
*** 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=/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/$(RUBY_BASE_NAME)
 
--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
/Library/Ruby/Gems/2.3.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:402:in `block in execute': Failed to complete compile task (RuntimeError)
 from /Library/Ruby/Gems/2.3.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:373:in `
chdir'
 from /Library/Ruby/Gems/2.3.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:373:in `execute'

 
from /Library/Ruby/Gems/2.3.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:115:in `compile'
 from /Library/Ruby/Gems/2.3.0/gems/mini_portile2-2.3.0/lib/mini_portile2/mini_portile.rb:154:in `
cook'
 from extconf.rb:365:in `block (2 levels) in process_recipe'

 
from extconf.rb:257:in `block in chdir_for_build'
 from extconf.rb:256:in `
chdir'
 from extconf.rb:256:in `chdir_for_build'

 
from extconf.rb:364:in `block in process_recipe'
 from extconf.rb:262:in `
tap'
 from extconf.rb:262:in `process_recipe'

 
from extconf.rb:551:in `<main>'


To see why this extension failed to compile, please check the mkmf.log which can be found here:


  /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-17/2.3.0/nokogiri-1.8.2/mkmf.log


extconf failed, exit code 1


Gem files will remain installed in /Library/Ruby/Gems/2.3.0/gems/nokogiri-1.8.2 for inspection.
Results logged to /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-17/2.3.0/nokogiri-1.8.2/gem_make.out

I found a post that said it might be Xcode related, so I ran this update (with same result):
bundle config build.nokogiri --use-system-libraries
bundle install

Thanks!

mkmf.log
gem_make.out

Mike Dalessio

unread,
May 18, 2018, 10:11:44 AM5/18/18
to nokogiri-talk
Thanks, this helps pinpoint what's going on:

ld: warning: ignoring file /usr/local/Cellar/xz/5.2.3/lib/liblzma.dylib, file was built forx86_64 which is not the architecture being linked (i386): /usr/local/Cellar/xz/5.2.3/lib/liblzma.dylib

Undefined symbols for architecture i386:
  "_lzma_auto_decoder", referenced from:
      _xz_head in libxml2.a(xzlib.o)
  "_lzma_code", referenced from:
      _xz_decomp in libxml2.a(xzlib.o)
  "_lzma_end", referenced from:
      ___libxml2_xzclose in libxml2.a(xzlib.o)
  "_lzma_properties_decode", referenced from:
      _is_format_lzma in libxml2.a(xzlib.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

This tells me that you may have an issue with how brew installed this library.

Maybe one of the Mac users on this list has an idea of how to resolve this?

curt...@gmail.com

unread,
May 22, 2018, 12:03:13 PM5/22/18
to nokogiri-talk
Thanks Mike! I'll stand by.

Rémy Léone

unread,
Jun 2, 2018, 3:06:28 PM6/2/18
to nokogiri-talk
I got the same problem :-(
Reply all
Reply to author
Forward
0 new messages