我是厨师的新手,只是尝试使用以下代码在chef recipe中安装gem包,然后再使用它:
gem_package 'bundler:1.6.5' do
options "--user-install www"
action :nothing
end.run_action(:install)
问题是bundle安装了,但root用户没有用www。我尝试了一切。这是错误还是我在这里做错了什么。请帮忙!
答案 0 :(得分:1)
%w[clc-gem1 clc-gem2 clc_gem-amazing].each do |gem|
gem_package gem do
source node["clc_nexus"]["repo"]["localgems"]
gem_binary "/opt/chefdk/embedded/bin/gem"
options "--no-user-install"
action :upgrade
end
end
您需要指定--no-user-install
选项。由于chef以root身份运行,如果未指定,则gems将安装在/ home / root中。通过指定--no-user-install
,gems将安装在共享的ruby gems位置。这可能不太理想,我确信必须有一种方法可以将它放在vagrant用户目录中,但是出于我们的流浪者环境的目的,这很有效。