在没有Apple开发包的情况下安装Nokogiri(Xcode)

问题描述:

我试图在没有安装Apple开发包的计算机上安装Nokogiri。在没有Apple开发包的情况下安装Nokogiri(Xcode)

我需要能够在没有管理权限的情况下在后台安装nokogiri。 由于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,您可以在 可选安装目录中找到它。

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的注意事项:随雪豹一起发售的DVD上的版本是越野车,所以不应使用它。相反,请从Apple's XCode Developer site下载版本。它需要登录,但注册是免费的。

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