首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用厨师安装Java 7,无法使其工作

使用厨师安装Java 7,无法使其工作
EN

Stack Overflow用户
提问于 2013-11-05 20:54:41
回答 2查看 7K关注 0票数 7

我有一本包装食谱,里面有一个菜谱,菜谱/default.rb,内容如下:

代码语言:javascript
运行
复制
include_recipe "apt"

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

include_recipe "java"

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

当我聚合节点时,它安装的是Java 6,而不是Java 7。我觉得有明显的遗漏,但我无法理解。难道node.override不应该使默认的jdk_version 6被覆盖吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-08 19:34:49

下面是我如何让它与包装食谱一起工作。

我必须将这个语句添加到属性/default.rb中:

代码语言:javascript
运行
复制
override[:java][:openjdk_packages] = [
  "openjdk-7-jdk", "openjdk-7-jre-headless"
  ]

我尝试在这个位置添加jdk_version,但是它没有工作。我尝试在包装食谱中添加这个语句(用node.override),但它也没有工作。

这里描述了为什么会出现这种情况。

票数 3
EN

Stack Overflow用户

发布于 2013-11-05 21:48:14

用“我不是厨师专家”来限定我的答案。然而,我认为问题在于厨师中的“嵌套属性”。我不认为你可以直接重写这个版本,因为在仔细研究了你的小菜谱可能有问题的每一件事之后,我发现:

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

在设置默认jdk版本之后,还有一些其他属性正在被设置。如果你看这里:

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

您将看到default['java']['openjdk_packages']是使用默认版本设置的,openjdk的菜谱(很可能是所选择的"install_flavor“)只查看该属性。它不直接在jdk_version中读取。有趣的是,java::oracle食谱(连同java::oracle_i386和java::oracle_rpm)直接在版本中阅读,所以您的最初尝试可能会成功。

根据您的特定平台,我将尝试使用其中之一设置版本:

代码语言:javascript
运行
复制
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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19798774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档