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

前端之家收集整理的这篇文章主要介绍了使用厨师安装Java 7,无法让它工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包装食谱,里面有一个食谱,食谱/ 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

原文链接:https://www.f2er.com/java/128477.html

猜你在找的Java相关文章