在CentOS 6.5盒子上使用Vagrant和Chef,我有以下食谱:
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以使用Oracle Java 7版本而不是yum安装的OpenJDK6。
set_env_var
设置以下环境变量:
使用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}
如何指定在JAVA_HOME
下使用哪个/etc/profile.d
环境脚本?
由于我的jdk.sh
设置为openjdk6版本,JAVA_HOME.sh
似乎赢了JAVA_HOME
。
答案 0 :(得分:1)
如果您要通过自定义食谱/食谱自己设置JAVA_HOME,您应该删除相同食谱中的现有jdk.sh。类似的东西:
file "/etc/profile.d/jdk.sh" do
action :delete
end
将它包装在支票中以便仅在绝对必要时应用(例如,如果文件存在,如果安装了yum,如果平台是您期望的等等)将是有用的。