3

As the title says, it doesn't seem to be failing because libxml2 or libxslt is missing. I'm not really sure what to make of the error. (Get it? Because the issue is during make? hehe...)

Anywho, here's the output I'm getting. Any ideas would be appreciated:

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

        /usr/bin/ruby1.9.1 extconf.rb
extconf.rb:10: Use RbConfig instead of obsolete and deprecated Config.
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... yes
checking for exsltFuncRegister() in -lexslt... yes
checking for xmlHasFeature()... yes
checking for xmlFirstElementChild()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
creating Makefile

make
compiling xml_element_content.c
compiling xml_relax_ng.c
compiling xml_cdata.c
compiling xml_sax_parser_context.c
compiling xml_node_set.c
compiling xml_text.c
compiling xml_sax_parser.c
compiling xml_attribute_decl.c
compiling nokogiri.c
nokogiri.c: In function ‘ruby_strdup’:
nokogiri.c:43:31: warning: conversion to ‘size_t’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
compiling xml_entity_reference.c
compiling xml_node.c
compiling xml_xpath_context.c
xml_xpath_context.c: In function ‘xpath_generic_exception_handler’:
xml_xpath_context.c:184:3: error: format not a string literal and no format arguments [-Werror=format-security]
cc1: some warnings being treated as errors
make: *** [xml_xpath_context.o] Error 1


Gem files will remain installed in /var/lib/gems/1.9.1/gems/nokogiri-1.5.0 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/nokogiri-1.5.0/ext/nokogiri/gem_make.out

For context, I upgraded from Ubuntu 12.04 to 12.10 last night. I had previously built the Nokogiri native extension on this box, though I do not know if it was the same version or not.

I also checked that I have all packages specified in the second post on "error installing nokogiri 1.5.0 with rails 3.1.0 and ubuntu" to no avail.

Community
  • 1
  • 1
Fapiko
  • 120
  • 7
  • Possibly the issue is that you now have a newer gcc, which has stricter format string checks. You could search for xml_xpath_context.c and try to fix the problem reported at l84 - it might be a simple matter of replacing a use of "printf" with "fputs". – slowdog Dec 21 '12 at 15:15

4 Answers4

7

Took me some time to figure out how to append the cflags. Here is my command for nokogiri 1.4.7:

sudo gem install  nokogiri -v '1.4.7' -- --with-cflags=\"-Wformat-nonliteral -Wno-format-security\"
Fabian
  • 71
  • 1
  • 1
5

Have you tried installing the following depencies for nokogiri??

# nokogiri requirements
sudo apt-get install libxslt-dev libxml2-dev
sudo gem install nokogiri
the Tin Man
  • 158,662
  • 42
  • 215
  • 303
Doel
  • 962
  • 7
  • 14
  • please notice that this works but you need to have this also: `sudo apt-get install build-essential` – fagiani Jan 29 '14 at 17:20
5

If you're trying to install Nokogiri < 1.5.4, you'll have problems on hardened Debian systems like Ubuntu 12.

Details on the underlying issue are here: https://github.com/sparklemotion/nokogiri/issues/680

You should be able to upgrade to 1.5.4 or later and install without this problem.

Alternatively, you should be able to set the CFLAGS environment variable at gem-install time to include the string:

-Wno-error=format-security

or

-Wformat-nonliteral -Wno-format-security

Good luck!

Mike Dalessio
  • 1,352
  • 9
  • 11
0

This may be happening due to this bug > https://leap.se/code/issues/7231

Run below before running the command:

sudo apt-get install zlib1g-dev