Cómo aprender Shell Scripting instalando Java JDK en DEBIAN

En este quinta (5°) entrada en desdelinux.net sobre como “Aprender Shell Scripting” a continuación presentaremos el diseño de un Script de Bash Shell que nos automaticé la tediosa tarea de instalar el Java JDK cuando el OpenJDK no satisface nuestros requerimientos para una labor de trabajo o investigación de alta prioridad.

Ciertamente, OpenJDK y el complemento para los navegadores, el IcedTea, son fáciles de instalar y la mayoría de veces cubre todas nuestras expectativas de desarrollo y ejecución online de aplicaciones Java.

Los mismos pueden ser instalados de la siguiente forma:

aptitude install default-jdk

aptitude install openjdk-7-jdk
aptitude install openjdk-7-jre

aptitude install openjdk-8-jdk
aptitude install openjdk-8-jre

aptitude install icedtea-netx
aptitude install icedtea-plugin

Pero algunas veces el Java JDK (original / privativo) nos ofrece mayor compatibilidad, soporte y funciones nuevas que el privativo. Por lo tanto, cuando agotamos todas nuestras opciones de trabajo con el OpenJDK y nuestra distribución o repositorio no cuente con la ultima versión del Java JDK, realizar manualmente o mediante un Script de Bash Shell dicha instalación es algo muy practico.

Recordemos que Java Development Kit (Oracle JDK) es el Kit de Desarrollo oficial del lenguaje de programación Java, un entorno de desarrollo orientado a objetos. Y Para que instalar Java JDK?

Java JDK nos permite la escritura de aplicaciones y applets de Java dentro o fuera de un navegador de Internet. JDK incluye también Java Runtime Environment (JRE), el Compilador Java y las API de Java. Lo cual es muy útil para los programadores nuevos y con experiencia.

Java JDK no es tan necesario la mayoría de las veces para un Usuario normal o básico, algunas veces solo para cosas sencillas como un Juego Online de Consola embebido o para Usuarios medianos o avanzados para cosas como Certificaciones electrónicas, debido a que sus botones son applets de Java. Por lo tanto, muchas veces es imprescindible tenerlo instalado si no quieres perderte una buena parte de la web. Es decir, aunque son muchas las páginas web que contienen pequeñas porciones de Java JDK (botones, menús) o que incluso están diseñadas íntegramente en Java JDK .

Por tanto, Java JDK no puede faltar en tu Navegador Web y Sistema Operativo en general!

Observación: La finalidad no es recomendar la instalación de “Java JDK” sino mostrar vía Shell Scripting el proceso que se realiza ocultamente, es decir, como deconstruir (Reingeniería Inversa) el proceso automatizado que se realiza cuando lo instalamos vía repositorio. Realizar reingeniería inversa a un paquete es utíl para comprender hasta lo más profundo como funciona una aplicación, paquete, software y hasta un Sistema Operativo, privativo o libre, como GNU/Linux. Lo mismo, por ejemplo, puede ser realizado con un Kernel Libre para GNU/Linux o Adobe Flash Player para GNU/Linux.

A continuación el contenido a insertar en el Script de Bash Shell ó que deberá ser ejecutado manualmente para tal fin:


#!/bin/bash

################################################################################
# INICIO DEL MODULO DE INSTALACIÓN DE ORACLE JAVA JDK                                      
################################################################################

USER_NAME=`cat /etc/passwd | grep 1000 | cut -d: -f1`

HOME_USER_NAME=/home/$USER_NAME

cd $HOME_USER_NAME

cd /opt

cp $HOME_USER_NAME/jdk-* .

clear

echo "  Introduzca el numero de Versión de Java JDK (Ejemplo, 7 o 8): "

read NUM_VER
NV=${NUM_VER}

echo ""
echo ""

echo "  Introduzca el numero de SubVersion de Java JDK (Ejemplo, 80 o 45): "

read NUM_SUBVER
NSV=${NUM_SUBVER}

VERSION=jdk1.$NV.0_$NSV

echo ""
echo ""

echo "  NOTA: Este parámetro solo es usado para descargar el paquete .tar.gz "
echo "  Si no lo conoce y ya tiene los paquetes descargados escriba cualquier "
echo "  valor como por ejemplo (Ejemplo, b14 o b15) "

echo "  Introduzca el numero de revisión de Java JDK (Ejemplo, b14 o b15): "

read NUM_REV
NREV=${NUM_REV}

echo ""
echo ""

echo "  Introduzca el Tipo de Arquitectura del Paquete de Java JDK (Ejemplo, 1 para 32 Bit y 2 para 64 Bit): "

read T_ARQ
ARQ_PC=${T_ARQ}

if [ "$ARQ_PC" = "1" ]; then
   ARQ1=i586
   ARCHIVOJDK=jdk-"$NV"u$NSV-linux-$ARQ1.tar.gz
   ARQUITECTURA=i386
  else
   ARQ2=x64
   ARCHIVOJDK=jdk-"$NV"u$NSV-linux-$ARQ2.tar.gz
   ARQUITECTURA=amd64
fi

sleep 5

echo ""
echo ""
echo " CONFIRME QUE ESTE ES EL PAQUETE ORACLE JAVA JDK QUE COLOCO PARA SU INSTALACION"
echo ""
echo ""
echo " $ARCHIVOJDK - $VERSION - $NREV - $ARQUITECTURA"
echo ""
echo ""
echo " EN CASO DE NO SER CIERTO, CANCELE EL PROCESO CON CTRL+C, DE LO CONTRARIO"
echo " ESPERE 15 SEGUNDOS MIENTRAS EL PROGRAMA CONTINUA EL PROCESO DE INSTALACION."
echo ""
echo ""

sleep 15

# export http_proxy=http://192.168.3.250:8080
# export no_proxy="127.0.0.1, localhost, 192.168.0.0/22, tu_institucion.gob.ve:8080"

# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/"$NV"u$NSV-$NREV/$ARCHIVOJDK"
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/"$NV"u$NSV-$NREV/$ARCHIVOJDK"
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/"$NV"u$NSV-$NREV/$ARCHIVOJDK"
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/"$NV"u$NSV-$NREV/$ARCHIVOJDK"

# Descargar manualmente y colocar en la ruta /home/mi_usuario/
# http://www.oracle.com/technetwork/java/javase/downloads/index.html

tar -zxvf $ARCHIVOJDK -C /usr/lib/jvm/

# ACTUALIZACION VARIABLES DE ENTORNO PARA SUN JAVA JDK

echo "JAVA_HOME=/usr/lib/jvm/$VERSION" >> /etc/profile
echo "PATH=$PATH:$HOME/bin:$JAVA_HOME/bin" >> /etc/profile
echo "export JAVA_HOME" >> /etc/profile
echo "export PATH" >> /etc/profile


# INSTALACION Y CONFIGURACION DE LA VERSION ACTUAL DE ORACLE JAVA JDK

update-alternatives --install /usr/bin/java java /usr/lib/jvm/$VERSION/bin/java 1
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/$VERSION/bin/javac 1
update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/$VERSION/bin/javaws 1
update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/$VERSION/bin/jar 1

update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/$VERSION/jre/lib/$ARQUITECTURA/libnpjp2.so 1

update-alternatives --set java /usr/lib/jvm/$VERSION/bin/java
update-alternatives --set javac /usr/lib/jvm/$VERSION/bin/javac
update-alternatives --set javaws /usr/lib/jvm/$VERSION/bin/javaws
update-alternatives --set jar /usr/lib/jvm/$VERSION/bin/jar

update-alternatives --set mozilla-javaplugin.so /usr/lib/jvm/$VERSION/jre/lib/$ARQUITECTURA/libnpjp2.so


# CONFIGURACION DE VERSION ACTUAL DE ORACLE JAVA JDK EN MOZILLA FIREFOX Y OPERA BROWSER

cd /usr/lib/mozilla/plugins/

rm -f libnpjp2.so

ln -s /usr/lib/jvm/$VERSION/jre/lib/$ARQUITECTURA/libnpjp2.so


# VERIFICACION Y GUARDADO DE LA ACTUALIZACION DE LA VERSION ACTUAL DE ORACLE JAVA DESCARGADA

java -version

javac -version

. /etc/profile

# FINALIZACION DE INSTALACION DE ORACLE JAVA DESCARGADA

rm -f jdk-*

cd $HOME_USER_NAME

rm -f jdk-*

su - $USER_NAME -c "xdg-open 'http://www.java.com/es/download/installed.jsp'" &

################################################################################
# FINAL DEL MODULO DE INSTALACIÓN DE ORACLE JAVA JDK                                   
################################################################################

==================================================

Nota: Yo personalmente lo uso descargando manualmente el archivo Java JDK actualizado manualmente, por lo que uso las lineas de descargas de wget comentadas, y coloco mi script-java-jdk.sh en la ruta /home/mi_usuario junto con el archivo Java JDK descargado y lo ejecuto con la orden de comando $ bash script-java-jdk.sh . Y en menos de 30 segundos tengo todo funcional. Luego de esto ya puede instalar cualquier aplicación en el Sistema Operativo que requiera Java JDK y ejecutar cualquier webapps java en un Navegador basado en Mozilla Firefox.

Recuerden, la idea es comprender como funciona cada linea por linea, comando por comando, variable por variable, para entender y aprender Shell Scripting. Así que con esta nueva publicación les dejo una nueva y emocionante tarea de investigación.

 

TUTORIAL DEL PROCEDIMIENTO


10 comentarios

  1.   zetaka01 dijo

    Shell scripting y java. Lo mas contrario. Un lenguaje pseudocompilado como java y un lenguaje interpretado como shellscript. Con java necesita una JVM.
    Cuando reinventas la rueda, bueno.bueno.
    Compílalo a C, pero a Java, un atraso.
    Felicidades

    1.    Anton dijo

      zetaka01, creo que no has entendido el objetivo del artículo. A veces es bueno pensar dos veces.

  2.   Ing. Jose Albert dijo

    Saludos.

    Textualmente escribí: “Observación: La finalidad no es recomendar la instalación de “Java JDK” sino mostrar vía Shell Scripting el proceso que se realiza ocultamente, es decir, como deconstruir (Reingeniería Inversa) el proceso automatizado que se realiza cuando lo instalamos vía repositorio. Realizar reingeniería inversa a un paquete es utíl para comprender hasta lo más profundo como funciona una aplicación, paquete, software y hasta un Sistema Operativo, privativo o libre, como GNU/Linux. Lo mismo, por ejemplo, puede ser realizado con un Kernel Libre para GNU/Linux o Adobe Flash Player para GNU/Linux”.

    Se suponía que era imposible pensar (interpretar) lo que pensaste (interpretaste), pero no importa!

    Te aclaro: Estos tutoriales son para que los que no saben Shell Scripting, aprendan Shell Scripting reconstruyendo los procesos de instalación y configuración de algún software o procedimiento, privativo o libre sobre un Sistema Operativo GNU/Linux.

    Igualmente para ti: Felicidades y muchas bendiciones!

  3.   arnoldobr dijo

    Saludos. Gracias por tus artículos. Muy informativos. Sigue publicando así.

  4.   zetaka01 dijo

    Bueno, yo soy de lo más contrario a las máquinas virtuales. Los compiladores JIT son cada vez mejores pero la máquina que subyace debajo lo enlentece. Prefiero una aproximación más ligera como el lenguaje GO, para lo demás compiladores nativos.
    Realmente hecho de menos un compilador python a nativo.
    Un saludo.

  5.   zetaka01 dijo

    Y si, tenéis razón, en cuanto leí lo de la JVM desconecté del artículo. Una máquina virtual, JVM o Mono, etc, es como un sistema operativo encima de tu sistema operativo.
    Mis disculpas y un saludo.

  6.   zetaka01 dijo

    Ah, hecho sin h.

  7.   Ing. Jose Albert dijo

    Tranquilo, imagine que no habías leído completo el articulo!

  8.   Ing. Jose Albert dijo

    Un ejemplo avanzado de lo que se puede hacer con Shell Scripting.

    ScreenCast de Testeo del LPI-SB8 (LINUX POST INSTALL – SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh / 43Kb)

    Ver Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

  9.   Ruben dijo

    gracias buenisimo saludos desde Venezuela.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *