我正在学习厨师,并制作一本包含安装rbenv和ruby-build的食谱的食谱。ruby-build配方安装程序,然后尝试用rbenv安装Ruby2.3.1。然而,每次我运行chef-client来收敛时,即使rbenv: no such command 'install'的安装成功完成,最后一步仍然会失败。
bash "initialize rbenv and install ruby 2.3.1" do
user "david"
cwd node["user"]["home"]
environment({
"PATH" => "#{node['rbenv']['bin']}:#{node['rbenv']['root']}/shims:#{ENV['PATH']}"
})
# code "eval \"$(rbenv init -)\" && rbenv install 2.3.1"
code <<-EOF
eval "$(rbenv init -)"
rbenv install 2.3.1
EOF
end我已经评论了我也尝试过的单行方式。在这两种情况下,它说,install是失踪的,尽管程序在那里。
实际上,我可以手动进入机器并运行以下命令:
[root@myserver ~]# su david
[david@myserver root]$ cd
[david@myserver ~]$ eval "$(.rbenv/bin/rbenv init -)"
[david@myserver ~]$ .rbenv/bin/rbenv install 2.3.1
Downloading ruby-2.3.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2有什么想法吗?为什么在收敛过程中会失败,而不是在命令行??
发布于 2016-06-10 19:25:27
尝试在shell环境中设置$HOME:
environment({
"PATH" => "#{node['rbenv']['bin']}:#{node['rbenv']['root']}/shims:#{ENV['PATH']}",
"HOME" => node["user"]["home"],
})https://stackoverflow.com/questions/37750715
复制相似问题