2014-03-27 46 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