11

有没有人想出一个好的配置脚本来使用存储在.ebextensions中的配置文件将 Oracle Java 1.7 安装到 Elastic Beanstalk 实例中。我正在使用弹性 beanstalk 的 tomcat7 版本,并且能够使用以下命令安装带有 yum 的 openJDK:

packages:
  yum:
    java-1.7.0-openjdk: []
    java-1.7.0-openjdk-devel: []

commands:
  use_java7:
    command: alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

我多么想使用 Oracle Java 1.7 而不是 OpenJDK,而 yum 本身的存储库中没有它。

4

3 回答 3

12

试试这个配置文件

files:
  "/home/ec2-user/install-oracle-jdk.sh":
    mode: "000755"
    owner: ec2-user
    group: ec2-user
    content: |
      #!/usr/bin/env bash
      wget -O jdk-7u25-linux-x64.rpm --no-cookies --no-check-certificate --header 'Cookie:gpw_e24=http://www.oracle.com; oraclelicense=accept-securebackup-cookie' 'http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.rpm'      
      rpm -Uvh /home/ec2-user/jdk-7u25-linux-x64.rpm
      alternatives --install /usr/bin/java java /usr/java/default/bin/java 3
      alternatives --set java /usr/java/default/bin/java

commands:
  execute-install-oracle-jdk-script:
    command: ./install-oracle-jdk.sh
    cwd: /home/ec2-user
于 2013-09-24T19:53:18.243 回答
2

您可以像往常一样安装它,并使用这个 ami 作为您的 ami 来创建新的 ec2 实例。

于 2013-11-25T10:17:32.517 回答
0

接受的答案不再有效,它已经过时了。这对我有用:

# Install Oracle JDK
rpm --erase --nodeps java-1.6.0-openjdk java-1.6.0-openjdk-devel
rpm -Uvh .ebextensions/jdk-6u45-linux-amd64.rpm
/usr/sbin/alternatives --install /usr/bin/java java /usr/java/default/bin/java 3
/usr/sbin/alternatives --set java /usr/java/default/bin/java
/usr/sbin/alternatives --install /usr/bin/java_sdk java_sdk /usr/java/default/bin/java 3
/usr/sbin/alternatives --set java_sdk /usr/java/default/bin/java

这适用于 java 6,因为我需要它。另外,从 oracle 下载的 jdk 现在实际上是一个 bin 文件(oracle 的自定义 sh 脚本提取器),所以我所做的就是从 oracle 下载 bin 文件,将其提取为 RPM,然后将 RPM 包含在 ebextensions 中。

只需包含该 sh 脚本以在 ebextensions 配置文件中运行(如果您不确定,请使用 google ebextensions 配置)。

希望这可以帮助某人。

于 2015-04-10T04:06:47.670 回答