不兼容的库版本:nokogiri.bundle需要8.0.0或更高版本,但libiconv.2.dylib提供版本7.0.0

时间:2013-09-25 17:45:54

标签: ruby-on-rails ruby macos homebrew libiconv

为了在我的mac上为rails项目安装mysql,我遵循在线建议安装自制程序并删除mac端口。这就是问题的开始。 rails项目不会构建,我得到了这个:

  
    

[rake --prereqs] rake aborted!

         

dlopen(/Users/Parker/.rvm/gems/ruby-1.9.3-p448/gems/nokogiri-1.6.0/lib/nokogiri/nokogiri.bundle,9):

         

未加载库:/opt/local/lib/libiconv.2.dylib

         

参考:/Users/Parker/.rvm/gems/ruby-1.9.3-p448/gems/nokogiri-1.6.0/lib/nokogiri/nokogiri.bundle

         

原因:库版本不兼容:nokogiri.bundle需要8.0.0或更高版本,但libiconv.2.dylib提供版本7.0.0

         

/Users/Parker/.rvm/gems/ruby-1.9.3-p448/gems/nokogiri-1.6.0/lib/nokogiri/nokogiri.bundle     /Users/Parker/.rvm/gems/ruby-1.9.3-p448/gems/activesupport-3.2.14/lib/active_support/dependencies.rb:251:in`require'

         

...

  

我已尝试过运行建议

  

brew install libiconv

我收到消息:

  
    

错误:没有可用的libiconv公式     Apple使用OS X发布libiconv,您可以在/ usr / lib中找到它。     某些构建脚本无法正确检测到它,请检查现有脚本     解决方案的公式。

  

我也试过

  

gem install nokogiri - --with-xslt-dir = / usr / local / Cellar / libxslt / 1.1.28 --with-xml2-dir = / usr / local / Cellar / libxml2 / 2.9.1

我收到的

  
    

错误:安装nokogiri时出错:

         

错误:无法构建gem原生扩展。

         

/Users/Parker/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb --with-xslt-dir = / usr / local / Cellar / libxslt / 1.1.28 --with -xml2-DIR =的/ usr /本地/地窖/ libxml2的/ 2.9.1     将libxml2-2.8.0.tar.gz解压缩到tmp / x86_64-apple-darwin12.5.0 / ports / libxml2 / 2.8.0 ......确定

         

运行'配置'对于libxml2 2.8.0 ...确定

         

运行'编译'对于libxml2 2.8.0 ...确定

         

运行'安装'对于libxml2 2.8.0 ...确定

         

激活libxml2 2.8.0(来自/Users/Parker/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin12.5.0/libxml2/2.8。 0)...

         

将libxslt-1.1.26.tar.gz解压缩到tmp / x86_64-apple-darwin12.5.0 / ports / libxslt / 1.1.26 ......确定

         

运行'配置'对于libxslt 1.1.26 ......好的

         

运行'编译'对于libxslt 1.1.26 ......好的

         

运行'安装'对于libxslt 1.1.26 ......好的

         

激活libxslt 1.1.26(来自/Users/Parker/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin12.5.0/libxslt/1.1。 26)...

         

检查libxml / parser.h ...否

  
     

>   -----   缺少libxml2。请访问http://nokogiri.org/tutorials/installing_nokogiri.html   帮助安装依赖项。   -----

     
    

*** extconf.rb失败***     由于某些原因无法创建Makefile,可能缺少必要的     库和/或标题。检查mkmf.log文件以获取更多详细信息。你可以     需要配置选项。

         

提供配置选项:         --with-OPT-DIR         --without-OPT-DIR         --with-OPT-包括         --without-OPT-包括= $ {停用DIR} /包括         --with-OPT-LIB         --without-OPT-LIB = $ {选择-DIR} / lib目录         --with-MAKE-PROG         --without-MAKE-PROG         --srcdir =。         --curdir         --ruby = /用户/帕克/ .rvm /红宝石/红宝石2.0.0-P247 /斌/红宝石         --with-zlib的-DIR         --without-zlib的-DIR         --with-zlib的,包括         --without-ZLIB-包括= $ {的zlib-DIR} /包括         --with-zlib的-LIB         --without-ZLIB-LIB = $ {的zlib-DIR} / lib中         --with-的iconv-DIR         --without-的iconv-DIR         --with-的iconv,包括         --without-的iconv-包括= $ {的iconv-DIR} /包括         --with-的iconv-LIB         --without-的iconv-LIB = $ {的iconv-DIR} / lib中         --with-XML2-DIR         --with-XML2,包括         --without-XML2-包括= $ {XML2-DIR} /包括         --with-XML2-LIB         --without-XML2-LIB = $ {XML2-DIR} / lib中         --with-XSLT的目录         --with-XSLT,包括         --without-XSLT-包括= $ {XSLT-DIR} /包括         --with-XSLT的LIB         --without-XSLT-LIB = $ {XSLT-DIR} / lib中         --with-的libxslt-配置         --without-的libxslt-配置         --with-pkg配置         --without-pkg配置         --with-的libxml-2.0-配置         --without-的libxml-2.0-配置         --with-libiconv的-配置         --without-libiconv的-配置

         

Gem文件将保留在/Users/Parker/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.6.0中进行检查。

         

结果记录在/Users/Parker/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.6.0/ext/nokogiri/gem_make.out

  

我已经努力解决这个问题超过8个小时。我已经尝试了每个链接,每个建议谷歌供应我。我完全难过了。在我看来,我的头脑中已经引起了一些环境问题。我意识到可能需要更多信息,但我不知道要提供什么。请告诉我其他信息有助于诊断问题。

1 个答案:

答案 0 :(得分:11)

我终于找到了解决我问题的一系列建议:

  

http://www.rqna.net/qna/swryr-bundle-install-stopped-at-nokogiri.html

     
    

brew tap homebrew / dupes

  

然后:

  
    

brew install libiconv

         

brew link --force libiconv

  

显然'brew tap homebrew / dupes'允许我使用'brew install libiconv'而没有错误,从那里'brew链接--force libiconv'解决了这个问题。