Instalación de Java 1.5 y Apache Tomcat 6 en SCO OpenServer 6.0

Este artículo presenta la recopilación cronológica de los pasos básicos seguidos para instalar una versión más actual de Apache Tomcat compatible con el sistema operativo Unix SCO OpenServer 6.0.

Veremos como instalar la versión compatible más reciente del contenedor de servlets, que como veremos más adelante se encuentra condicionado por ciertas restricciones impuestas por el sistema operativo.

SCO OpenServer 6.0 fue lanzando en el año 2005 y con él lo último del software estable de aquella época, que actualmente se lo podría considerar obsoleto. En el último paquete de mantenimiento de SCO viene la versión 4.1.31Na de Apache Tomcat instalado en /usr/lib/apache/jakarta-tomcat-4.1.31, una versión extremadamente vieja que se mantenía aún bajo el proyecto Jakarta ya dado de baja (nota oficial). La versión 4.1.31Na data del 2004-10-11 y requería de J2SE versión 1.2 o superior (SCO OpenServer venía con la especificación Java 2 Standard Edition (J2SE) 1.4.2).

Para encontrar la versión soportada más nueva de Tomcat todo queda limitado por la versión del JRE y JDK más recientes disponibles para SCO OpenServer 6.0, esto no ayuda mucho debido a que la versión más actualizada disponibles para este OS es el Java 2 SE 5.0 update 17. Esto limita nuestras opciones a la versión Tomcat 6 compatible con la especificación Java SE 5.0 o superior, ya que Tomcat 7 requiere como mínimo la especificación Java SE 6.0 o superior.

ATENCIÓN: Antes de continuar recuerde que no se recomienda seguir los siguientes pasos en un servidor de producción. ¡POR FAVOR, EXPERIMENTE CON LOS PASOS DE ESTE ARTÍCULO EN UN EQUIPO DE PRUEBAS!

Instalación de dependencias

Como ya se ha comentado más arriba, para ejecutar la versión soportada más reciente de Tomcat es necesario instalar la especificación 1.5 de Java en nuestro sistema operativo SCO OpenServer 6 que por defecto solo trae la versión 1.4.2.

Esto lo podemos lograr de dos formas, la primera es actualizar el sistema operativo con el paquete de mantenimiento y la segunda es instalar la versión 1.5.0 de Java mediante un paquete individual. Estas dos opciones de instalación serán tratadas a continuación:

ACTUALIZACIÓN DE JAVA MEDIANTE PAQUETE DE MANTENIMIENTO:

  1. Descargamos los dos discos en su formato ISO del Maintenance Pack 4, que luego los copiamos al directorio /tmp.
    ftp://ftp.sco.com/pub/openserver6/600/mp/osr600mp4/osr600mp4_cd1.iso
    ftp://ftp.sco.com/pub/openserver6/600/mp/osr600mp4/osr600mp4_cd2.iso

  2. Creamos dos carpetas en la raíz llamadas cd-rom1 y cd-rom2 en las cuales montamos las dos imágenes ISO
    bash-3.2# mkdir /cd-rom1
    bash-3.2# mkdir /cd-rom2
    bash-3.2# mount `marry –a /tmp/osr600mp4_cd1.iso` /cd-rom1
    bash-3.2# mount `marry –a /tmp/osr600mp4_cd2.iso` /cd-rom2

  3. Luego accedemos a la herramienta SCOadmin ejecutando el siguiente comando:
    bash-3.2# scoadmin
  4. En SCOadmin seleccionamos la opción Software Manager...


  5. Con los cursores del teclado nos movemos a la pestaña Software y de las opciones desplegadas seleccionamos Install New.


  6. A continuación el asistente nos consulta desde donde vamos a instalar y seleccionamos la opción que corresponde al equipo actual.


  7. En el siguiente paso la herramienta nos solicitará especificar el tipo de medio para instalar el paquete de mantenimiento. En este punto tendremos que seleccionar la opción Media Images, que permite especificar un directorio del sistema operativo en donde se encuentren los paquetes de actualización.


  8. Luego de haber seleccionado la opción Media Images en el paso anterior, la siguiente ventana del asistente nos solicitará especificar la ruta al directorio en donde se encuentran los paquetes de instalación. La ruta para los paquetes del CD1 del paquete de mantenimiento Nº 4 es el siguiente:
    Image Directory: /cd-rom1/opt/archives
    Al seleccionar la opción OK el asistente buscará en el directorio especificado los paquetes disponibles que podrán ser instalados.


  9. A continuación podremos observar una lista con los paquetes detectados por el asistente de instalación en el directorio especificado.


    Presionamos la barra espaciadora para seleccionar el paquete SCO OpenServer Release 6.0.0 Maintenance Pack 4 que quedará señalado con un asterisco a la izquierda de la ventana. Esta selección automáticamente incluirá a todos las aplicaciones jerárquicamente agrupadas bajo el mencionado paquete.

    Finalmente seleccionamos con el tabulador la opción Install para que el asistente comience con el proceso de instalación de los paquetes seleccionados.

  10. Finalizado el proceso de instalación de los paquetes contenidos en el CD1 correspondientes al paquete de mantenimiento Nº 4, debemos volver a repetir los pasos anteriores para instalar los paquetes del CD2, donde la única diferencia en el procedimiento será especificar en la opción Image Directory la ruta al CD2 como se muestra a continuación:
    Image Directory: /cd-rom2/opt/archives
    El asistente recuperará una nueva lista de aplicaciones y servicios individuales como se puede ver en la captura siguiente, los cuales deberán ser seleccionados uno por uno.


  11. Instalados todos los paquetes del punto anterior hemos culminado con la actualización del sistema operativo, solo resta reiniciarlo.
    bash-3.2# reboot

ACTUALIZACIÓN DE JAVA MEDIANTE PAQUETE INDIVIDUAL:

  1. La otra forma de instalar la nueva versión de Java es descargando e instalando el paquete individual. En este caso descargamos la última versión disponible del paquete de Java para SCO OpenServer 6.0, que es la misma versión que se instala con el paquete de mantenimiento Nº 4. El paquete lo podemos descargar desde la siguiente URL:
    ftp://ftp.sco.com/pub/openserver6/600/other/java.5.0.update17/OSR6_Java2_150.VOLS.tar
    Finalizada la descarga, copiamos el archivo tar en el directorio /tmp de nuestro servidor.

  2. Desempacamos el instalador con el comando tar:
    bash-3.2# cd /tmp
    bash-3.2# tar -xvf OSR6_Java2_150.VOLS.tar

  3. Iniciamos nuevamente el SCOadmin
    bash-3.2# scoadmin
    Y seguimos los pasos para seleccionar e instalar software ya detallados en la sección anterior, con la única diferencia de especificar la siguiente ruta en la opción Image Directory:
    Image Directory: /tmp/
    Del directorio anterior, el asistente presentará como única opción de instalación al paquete Java.


    Verificamos que el paquete se encuentre debidamente seleccionado y nos posicionamos sobre la opción Install para luego presionar la tecla Enter a fin de proceder con la instalación.

  4. Culminada la instalación cerramos el SCOadmin y nos dirigimos al directorio /opt/java2-1.5.0/bin para verificar la versión de Java recientemente instalada.
    bash-3.2# cd /opt/java2-1.5.0/bin/
    bash-3.2# ./java -version

    java version "1.5.0_17"
    Java(TM) 2 Runtime Environment, Standard Edition (build SCO-UNIX-J2SE-1.5.0_17_*FCS-UW714-OSR6*_20081202)
    Java HotSpot(TM) Client VM (build SCO-UNIX-J2SE-1.5.0_17_*FCS-UW714-OSR6*_20081202, mixed mode)
    bash-3.2#


Instalación de Apache Tomcat 6

  1. Descargamos el contenedor de servlets Apache Tomcat 6 y luego lo copiamos al directorio /opt:
    http://apache.osuosl.org/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.zip
  2. Desde la consola nos dirigimos al directorio /opt y descomprimimos el paquete.
    bash-3.2# cd /opt
    bash-3.2# unzip apache-tomcat-6.0.35.zip

  3. Nos ubicamos en el directorio /opt/apache-tomcat-6.0.35/bin y le asignamos permisos de ejecución a todos los scripts con extensión .sh:
    bash-3.2# cd /opt/apache-tomcat-6.0.35/bin
    bash-3.2# chmod 755 *.sh

  4. Exportamos las variables de entorno JRE_HOME y JAVA_HOME con las rutas apuntando al directorio de instalación del Java2 1.5.0.
    bash-3.2# export JRE_HOME="/opt/java2-1.5.0/jre"
    bash-3.2# export JAVA_HOME="/opt/java2-1.5.0/"

    También podríamos utilizar el directorio /usr/java o /usr/java2, ya que son enlaces simbólicos que apuntan al mismo directorio /opt/java2-1.5.0.

  5. Con las variables de entorno definidas podemos probar iniciar el servicio del Tomcat 6 ejecutando el script startup.sh del directorio /opt/apache-tomcat-6.0.35/bin:
    bash-3.2# ./startup.sh
    Using CATALINA_BASE: /opt/apache-tomcat-6.0.35
    Using CATALINA_HOME: /opt/apache-tomcat-6.0.35
    Using CATALINA_TMPDIR: /opt/apache-tomcat-6.0.35/temp
    Using JRE_HOME: /opt/java2-1.5.0/jre
    Using CLASSPATH: /opt/apache-tomcat-6.0.35/bin/bootstrap.jar
    bash-3.2#
  6. Probamos el funcionamiento de Tomcat accediendo a la siguiente URL.
    http://ip_servidor:8080
    Que debería desplegar el siguiente sitio web:


  7. Para parar el servicio podemos ejecutar el comando shutdown.sh como se muestra a continuación.
    bash-3.2# ./shutdown.sh


Script de arranque automático

Los pasos para crear e implementar el script de arranque para Tomcat 6 en SCO OpenServer 6.0 van a continuación.
  1. En el directorio /etc/init.d creamos un archivo denominado tomcat6 al cual le asignamos los permisos correspondientes.
    bash-3.2# touch /etc/init.d/tomcat6
    bash-3.2# chmod 750 /etc/init.d/tomcat6

  2. Abrimos el archivo.
    bash-3.2# vim /etc/init.d/tomcat6
  3. Y le asignamos el siguiente contenido, en el cual se ha resaltado algunas líneas que quizás requieran ser configuradas de acuerdo al entorno de instalación que cada lector haya elegido.
    #!/bin/sh
    #
    # tomcat start/stop script
    # Usage: tomcat6 [ start | stop | enable | disable | restart | status ]
    #

    set -a

    # Definitions
    # Paths to tomcat files, and a label

    TOMCAT_HOME="/opt/apache-tomcat-6.0.35"
    TOMCAT_BIN="$TOMCAT_HOME/bin"
    CATALINA_HOME=$TOMCAT_HOME
    CATALINA_LOG=$CATALINA_HOME/logs/catalina.out
    TOMCAT_START="$TOMCAT_BIN/startup.sh"
    TOMCAT_STOP="$TOMCAT_BIN/shutdown.sh"
    TOMCAT_LABEL="Apache Tomcat 6"

    # More paths, and some wait timeouts
    PATH="/bin:/usr/bin:/etc:/usr/gnu/bin"; export PATH
    JAVA_HOME="/usr/java"; export JAVA_HOME
    SCRIPTDIR="/etc/init.d"
    SCRIPT="tomcat6"
    SCRIPTNUM="95"
    USAGE="Usage: $SCRIPT [ start | stop | enable | disable | restart | status ]"

    #############################################################################
    # tomcat_start
    # start the server daemon running
    #############################################################################

    tomcat_start() {
    # signal the server to start
    echo -n "Starting $TOMCAT_LABEL ... "

    # start the server
    nohup $TOMCAT_START >> ${CATALINA_LOG} 2>&1

    # done message
    echo "done."
    }

    #############################################################################
    # tomcat_stop
    # stop the server daemon if it is running
    #############################################################################

    tomcat_stop() {
    # signal the server to stop
    echo -n "Stopping $TOMCAT_LABEL ... "

    # stop the server
    nohup $TOMCAT_STOP >> ${CATALINA_LOG} 2>&1

    # done message
    echo "done."
    }

    #############################################################################
    # tomcat_restart
    # restart the server daemon by sending it a SIGHUP
    #############################################################################

    tomcat_restart() {
    echo "Restarting $TOMCAT_LABEL ..."
    tomcat_stop
    tomcat_start
    }

    #############################################################################
    # tomcat_status
    # status of the service
    #############################################################################

    tomcat_status() {
    PID=`ps -aef | grep java | grep tomcat | sed "s~ *~ ~g" \
    | sed "s~^ ~~" | cut -d" " -f2`
    if [ -n "$PID" ] ; then
    echo "$TOMCAT_LABEL is running"
    else
    echo "$TOMCAT_LABEL is not running"
    fi
    }

    #############################################################################
    # tomcat_enable
    # add a link to this script into the /etc/rc2.d directory, then start
    # the server
    #############################################################################

    tomcat_enable() {
    # Link in /etc/init.d/tomcat6 to /etc/rc[02].d/[SP] startup links.
    # Remove any pre-existing link.
    # Otherwise the hard link get out of sync, if /etc/init.d/tomcat
    # inode is changed.

    ENABLE_STR=Enabling
    if [ -f /etc/rc*.d/[PS]$SCRIPTNUM$SCRIPT ]; then
    echo "$TOMCAT_LABEL is already enabled."
    ENABLE_STR="Re-freshing the links for"
    fi
    echo -n "$ENABLE_STR $TOMCAT_LABEL ... "

    # Create S$SCRIPTNUM$SCRIPT. UW714 /etc/rc2 script
    # starts the "S" scripts on boot

    for FL in /etc/rc2.d/K /etc/rc2.d/S /etc/rc2.d/P \
    /etc/rc0.d/P
    do
    rm -f $FL$SCRIPTNUM$SCRIPT
    ln $SCRIPTDIR/$SCRIPT $FL$SCRIPTNUM$SCRIPT
    done
    echo "done."

    # start the server
    tomcat_start
    }

    #############################################################################
    # tomcat_disable
    # stop the server, then remove any links to this script in /etc/rc*.d
    #############################################################################

    tomcat_disable() {
    # stop the server
    tomcat_stop
    if [ -f /etc/rc*.d/[PS]$SCRIPTNUM$SCRIPT ] ; then
    echo -n "Disabling $TOMCAT_LABEL ... "

    # remove the /etc/rc*.d startup link
    for FL in /etc/rc2.d/K /etc/rc2.d/S /etc/rc2.d/P \
    /etc/rc0.d/P
    do
    rm -f $FL$SCRIPTNUM$SCRIPT
    done
    echo "done."
    else
    # file does not exist
    echo "$TOMCAT_LABEL is already disabled."
    fi
    }

    #############################################################################
    # main()
    #############################################################################
    # check the usage of the script

    if [ $# -gt 1 ]; then
    echo "$USAGE"
    exit 1
    fi

    # function to perform is in $1
    function="$1"

    # execute the routine for the requested function
    case $function in
    start)
    tomcat_start
    ;;
    stop)
    tomcat_stop
    ;;
    enable)
    tomcat_enable
    ;;
    disable)
    tomcat_disable
    ;;
    restart)
    tomcat_restart
    ;;
    status)
    tomcat_status
    ;;
    *)
    echo "$USAGE"
    exit 1;;
    esac

    # done
    exit
    OBS: Script disponible en Gist de Github aquí.

  4. Y finalmente probamos el script anterior activando el servicio para que inicie durante el arranque del sistema operativo.
    bash-3.2# /etc/init.d/tomcat6 enable
  5. Las opciones soportadas por el script tomcat6 pueden ser desplegadas en pantalla, ejecutándolo sin especificar argumento alguno como se muestra a continuación:
    bash-3.2# /etc/init.d/tomcat6
    Usage: tomcat6 [ start | stop | enable | disable | restart | status ]
    bash-3.2#


Enlaces externos

Comentarios