2012-12-24 112 views
1

雖然在Ubuntu 12安裝引入nokogiri,我得到了一個錯誤:安裝引入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的,但正如你看到的,沒」幫助。

我該如何解決?

+0

這個解決方案對我很好。 http://stackoverflow.com/questions/13488129/unable-to-install-nokogiri –

回答

0

是否有一個特定的原因,你需要1.4.4而不是最新的1.5.6?否則,我建議升級。

Nokogiri changelog表明他們在1.5.4修復了這個:

Build support on hardened Debian systems that use -Werror=format-security . #680.

+0

沒有理由。但是,還有一個錯誤'sudo gem install nokogiri 構建原生擴展。這可能需要一段時間... 安裝成功引入nokogiri-1.5.6 1寶石安裝 安裝用於引入nokogiri-1.5.6引入nokogiri-1.5.6 ... 安裝RDoc文檔裏的文件... 亞歷克斯@ Ubuntu的:〜/ Documents/prj/rails3_prj $ bundle show nokogiri 在任何源中都找不到nokogiri-1.4.4 ' –

+1

聽起來好像你還沒有執行'bundle update'。 – Confusion

0

@Confusion有正確的想法。

Bundler可能被鎖定到Gemfile和/或Gemfile.lock中的nokogiri-1.4.4。 @ Confusion關於運行軟件包更新的答案應該允許您的Ruby Bundler環境使用成功安裝的nokogiri-1.5.6。

2

我在這個跌跌撞撞試圖在Ubuntu 13.04

我解決了它這種技巧編譯恢復的-Wformat安全GCC標誌系統範圍

小心做第一rm安裝bigbluebutton。它可以打破你的整個系統!

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' 
相關問題