2014-03-27 43 views
1

上一个CentOS 6.5箱体采用流浪汉,厨师,我有以下食谱:在CentOS盒正确指定JAVA_HOME

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设置以下环境变量:

  • M2_HOME
  • GRADLE_HOME
  • JAVA_HOME

使用魔法外壳的食谱,我成功地建立了第一个2个的环境变量,而不是JAVA_HOME 。但是,运行vagrant up --provision后,我的$JAVA_HOME被设置为open-jdk6目录。在/etc/profile.d中

看,我有对应于设定JAVA_HOME 2个shell脚本:

-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版本。

回答

1

如果您要通过自定义食谱/食谱自己设置JAVA_HOME,则应该删除相同配方中的现有jdk.sh。喜欢的东西:

file "/etc/profile.d/jdk.sh" do 
    action :delete 
end 

将包裹在检查有用的,只有应用在绝对必要时(即,如果文件存在,如果百胜安装,如果平台是你所期望的,等等)

+0

这似乎相当哈克给我。我知道你提供了一种方法来做到这一点,但是对你来说这似乎不合适吗? –

+0

公顷 - 你确实决定使用magic_shell,不是吗?祝你好运 – dpkp