2013-03-02 82 views

回答

1

厨师可以在node["languages"]["ruby"]["bin_dir"]中找到rubygems创建可执行文件的目录。因此,您应该从不改变食谱中的这些路径的硬编码。

至于您的确切问题:在Ruby> = 1.9.1和< 2.0.0中,rubygems将gem安装到1.9.1目录中以表示其使用1.9.1 ABI。目的是编译的宝石可以在使用ABI的不同ruby版本之间互换使用。然而,在实践中,这变得更加困难...

Ruby 2.0.0使用2.0.0目录。同样,你不应该硬编码路径,而是使用节点属性(OHAI使用rubygem自己的设施设置)。

+0

感谢您对我的问题的具体答案,以及一些背景故事! – Brandon 2013-03-03 00:36:15

+0

如果我在厨师食谱中安装了新的系统红宝石,这个路径是否会更新,以便我可以使用'gem_package'来安装新宝石的gem? @iain @holger只是 – Brandon 2013-03-03 00:37:06

+0

如果你改变红宝石与厨师跑的开始相比,你必须使用'ohai'资源来重新加载信息。另外,在安装任何其他gem之前,您应该确保这样做,以确保一致的安装目标。 – 2013-03-03 09:59:55

0

您可以随时使用:

$ gem env gemdir 

$ gem env gempath 

让你的宝石目录。