安装Nokogiri没有Apple的开发包(Xcode)

时间:2011-02-05 22:46:45

标签: ruby macos gem nokogiri

我试图在没有安装Apple开发包的计算机上安装Nokogiri。

我需要能够在没有管理员权限的情况下在后台安装nokogiri。 Due Nokogiri是我希望能够在任何OS X 10.5+机器上安装的脚本的一部分。

我试过这个。

gem install nokogiri

得到了这个。

WARNING:  Installing to ~/.gem since /Library/Ruby/Gems/1.8 and
      /usr/bin aren't both writable.
WARNING:  You don't have /Users/linus/.gem/ruby/1.8/bin in your PATH,
      gem executables will not run.
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

/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/linus/.gem/ruby/1.8/gems/nokogiri-1.4.4 for inspection.
Results logged to /Users/linus/.gem/ruby/1.8/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out

经过一番搜索,我找到了this

  

Apple为框架提供了标题   使用Xcode而不是操作系统。   因为我在安装后升级了   Xcode我不得不重新安装XCode来获取   Ruby头文件。 Xcode出货   安装DVD,你可以在中找到它   可选安装目录。

1 个答案:

答案 0 :(得分:3)

Nokogiri依赖于libxml2,这是一个标准的XML解析器。要访问libxml2,它必须使用C库并链接一些接口代码,以将Nokogiri的Ruby接口粘合到libxml2的C,这是Apple的XCode的用武之地。

XCode提供所需的编译器,链接器,头文件,make ......换句话说,提供使其工作所需的一切。

现在,从理论上讲,可以在一台装有XCode的Mac上构建Nokogiri,然后将生成的gem复制到另一台Mac,只要它们具有相同的一切,如Ruby版本和libxml2版本。这不是我们在Mac上或在基于Unix的系统上做事的常用方式,所以你大胆地去了我们大多数人不需要去的地方,包括我,所以你可能想问你的问题。 Nokogiri-Talk mail list,开发人员可以帮助您。他们会确切地知道需要复制哪些部分,以及应该安装哪些部分以使工作正常。

关于XCode的说明:Snow Leopard附带的DVD版本有漏洞,所以不应该使用它。而是从Apple's XCode Developer site下载版本。它需要登录,但注册是免费的。

不需要任何编译或XCode的替代方法是使用Ruby的ReXML XML解析器。它默认包含在Ruby中。它并不支持所有的Nokogiri好东西,但它已经存在了。