加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

使用厨师安装Java 7,无法让它工作

发布时间:2020-12-15 03:00:17 所属栏目:Java 来源:网络整理
导读:我有一个包装食谱,里面有一个食谱,食谱/ default.rb,它读取以下内容: include_recipe "apt"node.override[:java][:jdk_version] = '7'include_recipe "java" 我有来自社区网站的apt和java食谱.我只使用这个包装配方运行刀具引导程序. 当我收敛节点时,它会安
我有一个包装食谱,里面有一个食谱,食谱/ default.rb,它读取以下内容:
include_recipe "apt"

node.override[:java][:jdk_version] = '7'

include_recipe "java"

我有来自社区网站的apt和java食谱.我只使用这个包装配方运行刀具引导程序.

当我收敛节点时,它会安装Java 6而不是Java 7.我觉得我有一些明显的缺失,但我无法弄明白. node.override不应该这样做,所以默认的jdk_version为6会被覆盖吗?

解决方法

用“我不是厨师专家”来证明我的答案……但是,我认为问题在于Chef中的“嵌套属性”.我不认为你可以继续只是覆盖版本,因为在剥离了你的piddly配方可能出错的所有可能的东西之后,我发现了这个:

http://lists.opscode.com/sympa/arc/chef/2012-10/msg00265.html

在设置默认jdk版本后,还会设置一些其他属性.如果你看这里:

http://community.opscode.com/cookbooks/java/source

您将看到使用该默认版本设置默认[‘java’] [‘openjdk_packages’],并且openjdk配方(可能是选择的“install_flavor”)仅查看该属性.它不直接在jdk_version中读取.有趣的是,java :: oracle配方(以及java :: oracle_i386和java :: oracle_rpm)直接在版本中读取,因此您的初始尝试将适用于此.

我会尝试根据您的特定平台设置其中一个版本:

Redhat/CentOS: node.override[:java][:openjdk_packages] = ["java-1.7.0-openjdk","java-1.7.0-openjdk-devel"]
Debian/Ubuntu: node.override[:java][:openjdk_packages] = ["openjdk-7-jdk"]

其他“platform_family”选项可以在这里找到:https://github.com/opscode-cookbooks/java/blob/master/attributes/default.rb

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读