安装nokogiri – 无法构建gem原生扩展
在Ubuntu 12上安装Nokogiri时,我收到一个错误:
Installing nokogiri (1.4.4) with native extensions Gem::Installer::ExtensionBuildError: 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 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 html_sax_parser_context.c compiling xml_io.c compiling xml_entity_reference.c compiling xml_schema.c compiling xml_element_content.c compiling xml_reader.c compiling xml_sax_push_parser.c compiling xml_sax_parser.c compiling xslt_stylesheet.c compiling xml_element_decl.c compiling xml_node.c compiling xml_cdata.c compiling xml_processing_instruction.c compiling xml_entity_decl.c compiling xml_attribute_decl.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 /home/alex/.bundler/tmp/22194/gems/nokogiri-1.4.4 for inspection. Results logged to /home/alex/.bundler/tmp/22194/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out An error occurred while installing nokogiri (1.4.4), and Bundler cannot continue. Make sure that `gem install nokogiri -v '1.4.4'` succeeds before bundling.
我已经安装了libxslt-dev和libxml2-dev,但是如你所见,它没有帮助。
我该如何解决?
是否有特定原因需要1.4.4而不是最新的1.5.6? 否则我建议升级。
Nokogiri更改日志显示他们已在1.5.4中修复此问题:
在使用
-Werror=format-security
强化Debian系统上构建支持。 #680。
我偶然发现这个尝试在ubuntu 13.04上安装bigbluebutton
我解决了这个技巧,编译恢复系统范围内的-Wformat-security gcc标志
小心做第一个rm
。 它可以打破你的整个系统!
rm /usr/bin/gcc nano /usr/bin/gcc ## contents of /usr/bin/gcc #!/bin/sh gcc-4.7 $* -Wno-format-security ## save and exit chmod u+x /usr/bin/gcc gem install nokogiri -v '1.4.4'
@Confusion有正确的想法。
Bundler可能在Gemfile和/或Gemfile.lock中被锁定为nokogiri-1.4.4。 @ Confusion运行bundle更新的答案应该允许你的Ruby Bundler环境使用成功安装的nokogiri-1.5.6。
- 安装gem“joyride-rails”时的依赖性错误
- 使用Mac OSX 10.6为Ruby on Rails安装mysql2 gem
- 将gem coffee-script-source’从1.9.1降级到1.8.0
- 在ruby 2.0.0p247上替换’ruby-debug19’(罪魁祸首’linecache19’)?
- ruby的令人难忘的名字生成器gem
- 安装rubyracer时出错,错误“gem gem:package is corrupt”
- 在我的gemfile中从Github指定一个gem的分叉版本时,“找不到gem”错误
- 在osx上安装pg gem时出错
- 耙子流产了! Gem :: LoadError:为数据库适配器指定’postgresql’