Skip to content

Instantly share code, notes, and snippets.

@rafex
Last active June 29, 2023 01:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rafex/ed7ba0b1eab3e294488f010130ff82f4 to your computer and use it in GitHub Desktop.
Save rafex/ed7ba0b1eab3e294488f010130ff82f4 to your computer and use it in GitHub Desktop.
Instalador de java en versiones GraalVM, Adoptium, Corretto y Semeru para Distros basado en Debian. Java installer in GraalVM, Adoptium, Corretto and Semeru versions for Debian-based Distros.
{
"installationPath" : "/opt/java",
"sudo" : 1,
"install" : "graalvm",
"vendors":[
{
"vendor" : "ibm",
"version" : "8",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 1008,
"url" : "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u362-b09_openj9-0.36.0/ibm-semeru-open-jdk_x64_linux_8u362b09_openj9-0.36.0.tar.gz",
"package" : "ibm-semeru-open-jdk_x64_linux_8u362b09_openj9-0.36.0.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "ibm",
"version" : "11",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 1011,
"url" : "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.18%2B10_openj9-0.36.1/ibm-semeru-open-jdk_x64_linux_11.0.18_10_openj9-0.36.1.tar.gz",
"package" : "ibm-semeru-open-jdk_x64_linux_11.0.18_10_openj9-0.36.1.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "ibm",
"version" : "16",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 1016,
"url" : "https://github.com/ibmruntimes/semeru16-binaries/releases/download/jdk-16.0.2%2B7_openj9-0.27.0/ibm-semeru-open-jdk_x64_linux_16.0.2_7_openj9-0.27.0.tar.gz",
"package" : "ibm-semeru-open-jdk_x64_linux_16.0.2_7_openj9-0.27.0.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "ibm",
"version" : "17",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 1017,
"url" : "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.6%2B10_openj9-0.36.0/ibm-semeru-open-jdk_x64_linux_17.0.6_10_openj9-0.36.0.tar.gz",
"package" : "ibm-semeru-open-jdk_x64_linux_17.0.6_10_openj9-0.36.0.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "ibm",
"version" : "18",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 1018,
"url" : "https://github.com/ibmruntimes/semeru18-binaries/releases/download/jdk-18.0.2%2B9_openj9-0.33.1/ibm-semeru-open-jdk_x64_linux_18.0.2_9_openj9-0.33.1.tar.gz",
"package" : "ibm-semeru-open-jdk_x64_linux_18.0.2_9_openj9-0.33.1.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "adoptium",
"version" : "8",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 2008,
"url" : "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u362-b09/OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz",
"package" : "OpenJDK8U-jdk_x64_linux_hotspot_8u362b09.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "adoptium",
"version" : "11",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 2011,
"url" : "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.18%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.18_10.tar.gz",
"package" : "OpenJDK11U-jdk_x64_linux_hotspot_11.0.18_10.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "adoptium",
"version" : "16",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 2016,
"url" : "https://github.com/adoptium/",
"package" : "OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "adoptium",
"version" : "17",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 2017,
"url" : "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz",
"package" : "OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "adoptium",
"version" : "18",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 2018,
"url" : "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_x64_linux_hotspot_18.0.2.1_1.tar.gz",
"package" : "OpenJDK18U-jdk_x64_linux_hotspot_18.0.2.1_1.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "adoptium",
"version" : "19",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 2019,
"url" : "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_x64_linux_hotspot_19.0.2_7.tar.gz",
"package" : "OpenJDK19U-jdk_x64_linux_hotspot_19.0.2_7.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "graalvm",
"version" : "11",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 1020,
"url" : "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.2/graalvm-ce-java11-linux-amd64-22.3.2.tar.gz",
"package" : "graalvm-ce-java11-linux-amd64-22.3.2.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool","gu","polyglot","native-image","native-image-configure","rebuild-images"]
},
{
"vendor" : "graalvm",
"version" : "17",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 1021,
"url" : "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.2/graalvm-ce-java17-linux-amd64-22.3.2.tar.gz",
"package" : "graalvm-ce-java17-linux-amd64-22.3.2.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool","gu","polyglot","native-image","native-image-configure","rebuild-images"]
},
{
"vendor" : "graalvm",
"version" : "19",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 1022,
"url" : "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java19-linux-amd64-22.3.1.tar.gz",
"package" : "graalvm-ce-java19-linux-amd64-22.3.1.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool","gu","polyglot","native-image","native-image-configure","rebuild-images"]
},
{
"vendor" : "corretto",
"version" : "8",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 108,
"url" : "https://corretto.aws/downloads/latest/amazon-corretto-8-x64-linux-jdk.tar.gz",
"package" : "amazon-corretto-8-x64-linux-jdk.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "corretto",
"version" : "11",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 111,
"url" : "https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.tar.gz",
"package" : "amazon-corretto-11-x64-linux-jdk.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
},
{
"vendor" : "corretto",
"version" : "17",
"arch" : "x64",
"type" : "jdk",
"ignore" : 0,
"priority" : 117,
"url" : "https://corretto.aws/downloads/latest/amazon-corretto-17-x64-linux-jdk.tar.gz",
"package" : "amazon-corretto-17-x64-linux-jdk.tar.gz",
"binarys" : ["java","javac","jar","jcmd","keytool"]
}
]
}
#!/bin/bash
# @Author Raúl González
# Twitter @rafex
CONFIGURATION_JSON="install_java_debian.json"
TMP_PATH="/tmp/java"
INSTALLATION_PATH=$(jq '.installationPath' $CONFIGURATION_JSON)
INSTALLATION_PATH=$(echo $INSTALLATION_PATH | tr -d '\"')
SUDO=$(jq '.sudo' $CONFIGURATION_JSON)
if [ $SUDO -eq 1 ]
then
echo "Sudo activate"
SUDO="sudo"
else
echo "Sudo desactivate"
SUDO=""
fi
# Example URL
# https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.6%2B10_openj9-0.36.0/ibm-semeru-open-jdk_x64_linux_17.0.6_10_openj9-0.36.0.tar.gz
download() {
resources=$(echo $1 | tr -d '\"')
if [ ! -d "$TMP_PATH" ]; then
echo "$TMP_PATH does not exist."
mkdir -p $TMP_PATH
fi
wget -P $TMP_PATH -c $resources
}
unpackage() {
folder="$INSTALLATION_PATH/$1"
folder=$(echo $folder | tr -d '\"')
if [ ! -d "$folder" ]; then
echo "$folder does not exist."
$SUDO mkdir -p $folder
fi
binary=$2
binary=$(echo $binary | tr -d '\"')
$SUDO tar -xf "$TMP_PATH/$binary" -C $folder --strip-components=1
}
install_update_alternatives() {
name=$(echo $1 | tr -d '\"')
path=$(echo $2 | tr -d '\"')
priority=$(echo $3 | tr -d '\"')
#echo $path
$SUDO update-alternatives --install /usr/bin/$name $name $INSTALLATION_PATH/$path/bin/$name $priority
update-alternatives --list $name
}
install_native_image_graalvm() {
vendor=$(echo $1 | tr -d '\"')
path=$(echo $2 | tr -d '\"')
if [ $vendor == "graalvm" ]; then
echo "Install Native Image GraalVM"
$SUDO $INSTALLATION_PATH/$path/bin/gu install native-image
fi
}
count=0
while [ $count -lt 100 ]; do
vendor=$(jq .vendors[$count].vendor $CONFIGURATION_JSON)
if [ $vendor == "null" ]
then
echo "No more vendors"
exit 0
fi
ignore=$(jq .vendors[$count].ignore $CONFIGURATION_JSON)
install=$(jq .install $CONFIGURATION_JSON)
if [ $ignore -eq 0 ]; then
if [[ $install == $vendor ]] || [[ $install == "all" ]]; then
echo "Vendor of count is: $count - [$vendor] - version [$(jq .vendors[$count].version $CONFIGURATION_JSON)] - arch [$(jq .vendors[$count].arch $CONFIGURATION_JSON)]"
# jq .vendors[$count] $CONFIGURATION_JSON
url=$(jq .vendors[$count].url $CONFIGURATION_JSON)
url=$(echo $url | sed 's/""//')
priority=$(jq .vendors[$count].priority $CONFIGURATION_JSON)
name=$(jq .vendors[$count].package $CONFIGURATION_JSON)
name=$(echo "${name%.*.*}")
path="$(jq .vendors[$count].version $CONFIGURATION_JSON)/$(jq .vendors[$count].arch $CONFIGURATION_JSON)/$name"
package=$(jq .vendors[$count].package $CONFIGURATION_JSON)
download $url
unpackage $path $package
install_native_image_graalvm $vendor $path
count_bin=0
while [ $count_bin -lt 10 ]; do
bin=$(jq .vendors[$count].binarys[$count_bin] $CONFIGURATION_JSON)
if [[ $bin == "null" ]]
then
echo "" > /dev/null
else
echo "UPDATE-ALTERNATIVES [$bin $path $priority]"
install_update_alternatives $bin $path $priority
fi
count_bin=$(($count_bin + 1))
done
fi
fi
count=$(($count + 1))
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment