Linux – Automatic updating of newer JRE on GNU/Linux

automatic-updatesjavalinux

How can a GNU/Linux machine be set up to automatically update a newer version of the Java Runtime Environment (JRE)? The difficulty is wanting to use a newer version of Java (Java 7, at present) and also be reasonably up to date with bugfixes, especially security updates, without excessive manual work.

You can rely on the the O/S distribution, but they are naturally conservative and therefore provide only bug-fixed versions of an older Java version. No Java 7 on RedHat 6.

You can manually download the JRE from the Oracle website, and set your JAVA_HOME environment variable to point to it. But that is impractical when you want multiple machines across an enterprise to be updated.

Is there a practical way to, for example, use Java 7 on RedHat 6 and have the Java 7 JRE automatically (or semi automatically) updated as Oracle release bug fixes for it?

Best Answer

  1. Oracle doesn't maintain a Yum repository to point to, but you could create one locally and populate it with new releases. Then, point your hosts at your internal repository and have a cron job that regularly updates from it. This has the benefit of using the alternatives system to setup the environment variables for a desired release. In most cases, JAVA_HOME would stay pointing at the default location which is a symlink setup by alternatives.

  2. In a previous job, we had some apps exported via NFS. And I used to symlink the latest version to "latest." The JAVA_HOME can default to this path. This meant one place to update but allowed end users to rollback or override it as needed in their own environment.

Related Topic