Skip to content
This repository has been archived by the owner on Aug 23, 2022. It is now read-only.

CentOS6ZipBundle

ojdkbuild edited this page May 27, 2016 · 1 revision

Goal

Bundle java-1.8.0-openjdk binary package from CentOS 6 as a "relatively portable" ZIP bundle.

Prerequisites

Linux x86_64 machine that can run Docker.

Process

Setup CentOS 6 instance:

curl -LO http://cloud.centos.org/centos/6/images/CentOS-6-x86_64-GenericCloud.qcow2.xz
xz -d CentOS-6-x86_64-GenericCloud.qcow2.xz
virt-tar-out -a CentOS-6-x86_64-GenericCloud.qcow2 / - | sudo docker import - centos6_jdk
sudo docker run -id --name centos6_jdk centos6_jdk bash

Login into it and install required packages:

sudo docker exec -it centos6_jdk bash
yum update -y
yum install zip yum-utils -y
adduser jdk
su - jdk

Under normal user, download java-1.8.0-openjdk binary packages and some dependencies:

mkdir tmp
cd tmp
yumdownloader java-1.8.0-openjdk java-1.8.0-openjdk-headless java-1.8.0-openjdk-devel java-1.8.0-openjdk-src ca-certificates tzdata-java dejavu-sans-fonts dejavu-sans-mono-fonts dejavu-serif-fonts
for fi in `ls *.rpm` ; do rpm2cpio $fi | cpio -idmv ; done

Add timezone data, CA certificates file and fonts:

rm ./usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/tzdb.dat
cp ./usr/share/javazi-1.8/tzdb.dat ./usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/
rm ./usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security/cacerts
cp ./etc/pki/java/cacerts ./usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/security/
cp -r ./usr/share/fonts/dejavu/ ./usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/fonts/

Rename library for SunEC security provider effectively disabling it (it may fail outside of CentOS, see details):

mv ./usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/amd64/libsunec.so ./usr/lib/jvm/java-1.8.0-openjdk.x86_64/jre/lib/amd64/libsunec.so_DISABLED

Bundle image (replace <version>):

mv ./usr/lib/jvm/java-1.8.0-openjdk-<version>.x86_64/ .
zip -qr9 java-1.8.0-openjdk-<version>.x86_64.zip java-1.8.0-openjdk-<version>.el6.x86_64