我在 chef 中有以下代码,我想在其中设置 JAVA_HOME
但前提是它尚未设置。当我运行下面的命令时,它说它运行成功但没有设置 java_home。如果我手动运行,java_home 命令设置正确。
即使我删除了 not 如果它运行没有错误但没有设置 JAVA_HOME
。
bash 'set_JAVA_HOME' do
code <<-EOH
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
only_if code
<<-EOH 'echo $JAVA_HOME' ==0
EOH
end
最佳答案
环境变量只能单向工作,当进程 fork 时,它们会从父进程发送到子进程,反之则不行。此代码实际上是空操作。在 Chef 的环境 ENV['JAVA_HOME'] = ...
中设置变量或对特定资源使用 environment
属性。
关于linux - 如何在 Chef 中设置 java home,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38900041/