【问题标题】:Can not install gem package with my own user during chef compilation在厨师编译期间无法使用我自己的用户安装 gem 包
【发布时间】:2015-12-29 01:43:03
【问题描述】:
我是厨师新手,只是尝试在厨师食谱中使用以下代码安装 gem 包,然后才能使用它:
gem_package 'bundler:1.6.5' do
options "--user-install www"
action :nothing
end.run_action(:install)
问题是 bundler 被安装了,但是在 root 用户下没有 www。我已经尝试了一切。这是错误还是我在这里做错了什么。请帮忙!
【问题讨论】:
标签:
rubygems
chef-infra
bundler
【解决方案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 用户目录中获取它,但对于我们的 vagrant 环境而言,这很有效。