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

我更新了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 

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

谢谢大家 – 当我更新到Lion时,我需要安装x代码4.1以获取正确的文件,以便捆绑程序安装所有正确的软件包。 现在一切都很好吃!

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

我发现这可以通过https://github.com/sparklemotion/nokogiri/issues/1166#issuecomment-56545974 。

 $ brew install libxml2 $ gem install nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/ 

如果这不起作用,这是一个更详细的方法。 http://www.bullrico.com/2012/07/12/installing-nokogiri-after-updating-homebrew

它说:“找不到ruby的头文件”。 换句话说,你错过了ruby头文件,以便将libxml / nokogiri编译为ruby扩展。

考虑使用macports或rvm安装ruby 1.9(或1.8)。 我不是100%在第二个,但第一个将自动使相关的标题可用。

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

我有类似的问题,安装XCode 4.1后,我还必须执行以下命令:

 sudo port upgrade libxml2 libxslt 

之后,Nokogiri建造没有问题。

更多信息: http : //tektastic.com/2011/07/ruby-mac-ports-and-os-x-lion.html

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

我遇到了与1.9.2-p280相同的问题,但是当我切换到1.9.2-p180时 ,我能够安装出问题。 不能告诉你为什么这样有效,但确实如此。

我正在运行Lion和RVM(1.8.6)