我正尝试在配方中安装一个windows server 2008r2上的gem“sensu_plugin”和“mixlib-shellout”。 在这最后一个,我有以下代码:
%w{ sensu-plugin mixlib-shellout }.each do |gem_plugin| gem_package gem_plugin do gem_binary("C:/opt/sensu/embedded/bin/gem") options("--no-rdoc --no-ri") action :install end end
然而,当我的机器上运行食谱,我收到错误“错误:执行gem…(Errno :: ENOENT)没有这样的文件或目录 – U:/”。 我发现,每当我尝试使用位于chef-client目录(C:\ opscode \ chef \ embedded \ bin \ gem)中的gem二进制文件安装gem包时,就会引发最后一个错误。
问题是,我希望用来安装gem包的gem实际上位于C:/ opt / sensu / embedded / bin / gem,我已经在gem_binary选项中声明了它。
最后,它看起来像厨师忽略了gem_binary选项,并试图从它自己的gem二进制文件安装它。
我设法让它在只有1个磁盘(C:/)的testing环境中工作,并在那里工作。 但是,只要我进入一个安装磁盘(U:和更多)的实时环境,我得到了以前的错误。 难道这是因为厨师正在寻找可能在U盘的用户家吗?
我看不出这个configuration有什么问题。 gem_binary是否真的指出要使用哪个二进制文件?