在 CentOS 6.5 机器上使用 Vagrant 和 Chef,我有以下 Recipe :
chef.add_recipe "yum"
chef.add_recipe "custom_java_cookbook" # simply installs the Oracle Java 7 RPM
chef.add_recipe "set_env_var"
总的来说,我的问题是如何正确指定 JAVA_HOME 以在 yum 安装的 OpenJDK6 上使用 Oracle Java 7 版本。
set_env_var
设置以下环境变量:
- M2_HOME
- GRADLE_HOME
- JAVA_HOME
使用 magic shell cookbook,我成功地设置了前 2 个环境变量,但没有设置 JAVA_HOME
。但是,在运行 vagrant up --provision
之后,我的 $JAVA_HOME
被设置为 open-jdk6 目录。
查看/etc/profile.d,我有 2 个 shell 脚本对应于设置 JAVA_HOME
:
-jdk.sh # I'm guessing it's part of the yum cookbook. {export JAVA_HOME = openjdk6}
-JAVA_HOME.sh # Chef-created script: {export JAVA_HOME = jdk7_oracle_dir}
如何在 /etc/profile.d
下指定使用哪个 JAVA_HOME
环境脚本?
似乎 jdk.sh
胜过 JAVA_HOME.sh
,因为我的 JAVA_HOME
设置为 openjdk6 版本。
最佳答案
如果您要通过自定义说明书/Recipe 自己设置 JAVA_HOME,您可能应该删除同一 Recipe 中现有的 jdk.sh。像这样的东西:
file "/etc/profile.d/jdk.sh" do
action :delete
end
将其包装在检查中以仅在绝对必要时应用(即,如果文件存在、是否安装了 yum、是否是您期望的平台等)会很有用
关于linux - 在 CentOS Box 上正确指定 JAVA_HOME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22695397/