Nokogiri - 错误:无法构建本地扩展宝石

11

我升级到Lion的开发者版本后,发现不能再启动rails应用程序。每次我尝试sudo bundle install时,都会出现以下错误:

Installing nokogiri (1.4.4) with native extensions /Library/Ruby/Site/1.8/rubygems/installer.rb:551:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

        /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h


Gem files will remain installed in /Users/jamielawrence/Documents/Websites/atgdb/vendor/bundle/ruby/1.8/gems/nokogiri-1.4.4 for inspection.
Results logged to /Users/jamielawrence/Documents/Websites/atgdb/vendor/bundle/ruby/1.8/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out
    from /Library/Ruby/Site/1.8/rubygems/installer.rb:504:in `each'
    from /Library/Ruby/Site/1.8/rubygems/installer.rb:504:in `build_extensions'
    from /Library/Ruby/Site/1.8/rubygems/installer.rb:180:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/source.rb:101:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:78:in `preserve_paths'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/source.rb:91:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:58:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:93:in `with_build_args'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:57:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:49:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/installer.rb:8:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/cli.rb:222:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/task.rb:22:in `send'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/task.rb:22:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor.rb:246:in `dispatch'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/lib/bundler/vendor/thor/base.rb:389:in `start'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.15/bin/bundle:13
    from /usr/bin/bundle:19:in `load'
    from /usr/bin/bundle:19

你是否已经安装了Xcode?你是否已经安装了libxml2和libxslt?这些库是nokogiri所必需的。 - Luis Lavena
8个回答

15

尝试安装“libxslt1-dev”和“libxml2-dev”软件包。


10

谢谢大家。当我升级至Lion系统时,我需要安装Xcode 4.1来获取幕后的正确文件以使捆绑程序能够安装所有正确的捆绑包。现在一切都正常了!


谢谢你的提示,我遇到了一个类似的问题,是 VIM 插件引起的。 - Peter Brown
请注意,与您从 Mac App Store 下载的其他应用程序不同,您必须使用“安装 Xcode”应用程序手动安装 XCode。 - Marc

3

3

安装ruby1.8-dev gem(或者适用的*-dev gem),它将包含所有头文件。请参见:这个问题


1

它说:“找不到 Ruby 的头文件”。换句话说,您缺少 Ruby 头文件以便将 libxml/nokogiri 编译为 Ruby 扩展。

考虑使用 MacPorts 或 RVM 安装 Ruby 1.9(或 1.8)。我对第二个选项不是100%确定,但第一个选项将自动使相关的头文件可用。


1

考虑安装 nokogiri 的 1.6 版本之前的版本 (gem install nokogiri -v '1.5.9')


谢谢!这解决了我在OSX 10.9.1上使用XCode 5.0.2和Ruby 2.0.0安装nokogiri的问题(nokogiri是jekyll-import的依赖项)。 - nicksuch

0

我尝试了许多不同的解决方案,但最终对我有效的方法就是使用不同版本的1.9.2。

之前我也遇到了同样的问题,使用1.9.2-p280版本时,但是当我切换到1.9.2-p180版本后,我就能够顺利安装了。我无法告诉你为什么这个方法有效,但确实奏效了。

我正在运行Lion和RVM(1.8.6)


刚刚在另一个完全不同的 Lion 系统上又遇到了这个问题。再一次地,p180 可以工作,而 p280 却不能。 - Emerson

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接