问题 如何在Amazon Elastic Beanstalk实例中安装Oracle Java 7


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

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本身就没有它的回购。


4278
2017-09-23 20:38


起源



答案:


试试这个配置文件

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

11
2017-09-24 19:53



这不再适用,需要更新下载链接和cookie。随着新的Java 8发布,它已经发生了变化。 - tbraun
它应该再次工作:) - study
做得好!非常感谢!我懒得找到这个新链接。但是懒得把rpm转移到我自己的CDN服务器上,现在我不用担心Oracle会再次更改他们的下载系统。 - tbraun
@thraun,S3是另一个存储rpm的好方法:) - study


答案:


试试这个配置文件

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

11
2017-09-24 19:53



这不再适用,需要更新下载链接和cookie。随着新的Java 8发布,它已经发生了变化。 - tbraun
它应该再次工作:) - study
做得好!非常感谢!我懒得找到这个新链接。但是懒得把rpm转移到我自己的CDN服务器上,现在我不用担心Oracle会再次更改他们的下载系统。 - tbraun
@thraun,S3是另一个存储rpm的好方法:) - study


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


1
2017-11-25 10:17





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

# 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,然后在ebextensions中包含RPM。

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

希望这有助于某人。


0
2018-04-10 04:06