gpt4 book ai didi

ruby - Chef + rbenv : "rbenv: no such command ' install'"despite ruby-build being installed

转载 作者:太空宇宙 更新时间:2023-11-03 16:19:05 29 4
gpt4 key购买 nike

我正在学习 Chef 并构建一本 Recipe ,其中包含安装 rbenvruby-build 的方法。 ruby-build 配方安装程序,然后尝试使用 rbenv 安装 Ruby 2.3.1。但是,每次我运行 chef-client 收敛时,最后一步都会失败并出现错误 rbenv: no such command 'install' even though ruby-build 安装成功。

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

知道为什么这会在收敛过程中失败但在命令行中不会失败吗?

最佳答案

尝试在 shell 环境中设置 $HOME:

environment({
"PATH" => "#{node['rbenv']['bin']}:#{node['rbenv']['root']}/shims:#{ENV['PATH']}",
"HOME" => node["user"]["home"],
})

关于ruby - Chef + rbenv : "rbenv: no such command ' install'"despite ruby-build being installed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37750715/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com