JAVA 1.5 + MySQL 5 + Tomcat 5.5 en Debian Sarge 3.1

Me encanta Debian por muchas razones:

– Todo es bastante sencillo de realizar
– La instalación y administración es muy limpia.
– Siempre encuentras mucha ayuda sobre como hacer las cosas.

pero también la odio..

– Nunca intenteis instalar una última versión en Debian.

El ciclo de «Releases» de debian da a esta distribución una gran estabilidad, pero también hace que a veces, cuando estas buscando una funcionalidad de determinado servicio que solo esta en la última versión, que te acuerdes de media familia de quien la diseño asi.

Esta semana he estado intentando instalar una configuración un poco «extraña» para una Debian. Tiene que ver con una cosa que estamos haciendo en el trabajo.

– Debian 3.1 (sarge)
– MySQL 5
– JAVA 1.5
– Tomcat 5.5

La verdad es que lo que estamos intentando bien se podría haber hecho con otras versiones, pero a veces hay que tirarse a la piscina.

Bueno, pues la instalación comienza asi.

La máquina sobre la que debemos instalar Debian tiene las siguientes especificaciones:

– DUAL AMD 64 bits
– 16 Gb de Memoria
– Controladora 3Ware 9550SX
– 1.2 Tb de disco duro.

Ya la configuración plantea varios problemas

El soporte para AMD 64bits en Debian es aun experimental, pero bueno, es posible bajar una ISO para realizar la instalación.

– [Debian — AMD64 Ports->http://www.debian.org/ports/amd64/%5D

Bien, una parte funcionando… ahora al instalar me doy cuenta que
la controladora no esta soportada, bien.
Buscando por la red encuentro esto.

– [ I want to use Debian Sarge 3.1 with the 9550SX, but support isn’t included. ->http://www.3ware.com/kb/article.aspx?id=14860%5D

Despues de bajar ese CD y de una instalación sin problemas me doy cuenta que hay que activar un par de opciones en el Kernel. Una sin importancia

– SMP

Asi que a recompilar.

Como pretendo que esto sea una instalación lo mas limpia posible voy a intentar que todo lo que se instale en la máquina sea a traves de paquetes.
Me pongo a investigar un poco y descubro que debian incluye una utilidad para poder hacer un paquete de una versión de kernel tuya. Las instrucciones son muy sencillas.

{{{Kernel}}}

– Descargar el Kernel
– Descargar unos paquetes que necesitamos


# apt-get install bzip2
# apt-get install kernel-package
# apt-get install libncurses5-dev

– El importante es [kernel-package->http://packages.debian.org/stable/misc/kernel-package%5D que es el que nos va a permitir hacer el .deb

– Despues descomprimimos los fuentes

# tar -jxpvf kernel-file.tbz

– Y comprobamos que todo esta correctamente (opciones y parámetros).

# cd kernel-version
# cp /boot/configxxx. .config
# make menuconfig

– Una vez todo esta listo simplemente hay que hacer lo siguiente

# make-kpkg -rev netusage.1 kernel_image

– Y ya esta listo para instalar.

# dpkg -i kernel-image-2.6.17.8_amd64.deb

– Por defecto este kernel no genera initrd (aun no he mirado por que), asi que si utilizais esta funcionalidad tendreis que generarlo a mano.

# mkinitrd -o /boot/initrd.img-2.6.17.8.img 2.6.17.8

Una vez hecho esto, ya tenemos listo una parte. Nuestra máquina arranca con el nuevo Kernel (comprobarlo 😉 )

Vamos a por la instalación de JAVA.

{{{JAVA}}}

Es un proceso bastante documentado, asi que realmente no vamos a hacer mucho incapié en el. (mi amigo [Xer0->http://xero.zoomblog.com/archivo/2005/09/28/instalar-Java-en-Debian.html%5D ya lo publicó en su momento.

– Añadir «non-free contrib» en /etc/apt/sources.list
– Despues ejecutar los siguiente


# apt-get update
# apt-get install java-package

– Descargar en JRE y JSDK (formato bin) de [->http://java.sun.com%5D
– Los comandos siguientes solo se pueden ejecutar como no root asi que.


# useradd admin -m
# su - admin

– Y por último creamos el paquete.


# fakeroot make-jpkg jre-1_5_0_08-linux-amd64.bin
# fakeroot make-jpkg jdk-1_5_0_08-linux-amd64.bin

– Y logicamente instalarlos.


# dpkg -i sun-j2re1.5_1.5.0+update08_amd64.deb
# dpkg -i sun-j2dk1.5_1.5.0+update08_amd64.deb

{{{MySQL 5}}}

Esta es la parte mas facil de todo el proceso. Para poder instalar esta versión en Debian Sarge haremos uso de los backports. Puede que a alguien no le gusten, pero a veces hacen tu vida mas facil.

– Añadir la siguiente linea al sources.list


deb http://www.backports.org/debian/ sarge-backports main contrib non-free

– Y ejecutar


# apt-get udpate
# apt-get -t sarge-backports install mysql-common
# apt-get install mysql-server-5.0

– No os olvideis de cambiar la password del mysql 😉


# mysqladmin password '{password}'

Y por último la parte mas entretenida.

{{{TOMCAT 5.5}}}

Digo que es la parte mas entretenida por que no tengo ni idea de Tomcat. Pero bueno, siempre algo se puede hacer.

Empece a googlear(®) .. para ver que información había. El problema, el de siempre, tomcat.. tomcat.. pues en debian no me viene nada por eso. 😉

Encontre información sobre tomcat5 (en fase testing) .. pero 5.5 nada. Vi que se estaba trabajando en los paquetes (creo que no esta ni en unestable, que estan en experimental). La información esta en esta URL

[->http://people.debian.org/~avdyk/tomcat5.5/%5D

Asi que me puse a ello. Y lo que saque «por prueba y error es esto»


# apt-get install subversion
# apt-get install cdbs
# svn co svn://svn.debian.org/svn/pkg-java/branches/tomcat5/tomcat5.5.x/
# cd tomcat5.5.x/

Eso nos permite acceder a la definición de como se hacen los paquetes. A partir de eso y tal como dice en la web podremos generarlos. Pero antes había que hacer unos cambios.

– Editar tomcat5.5/debian/rules y cambiar JAVA_HOME.


JAVA_HOME := /usr/lib/jvm/java-gcj

por esto


JAVA_HOME := /usr/lib/j2sdk1.5-sun/

– Instalar algunas dependencias para que nuestro programa compile.


# apt-get install libcommons-fileupload-java
# apt-get install libstruts1.2-java
# apt-get install unzip xsltproc
# apt-get install junit
# apt-get install libjessie-java
# apt-get install libxalan2-java
# apt-get install libgnujaf-java
# apt-get install libgnumail-java
# apt-get install kaffe

Algunas dependencias se puede «satisfacer» con paquetes de testing, yo he optado por esa solución, aunque lo «seguro» seria hacer un backporting.
Las librerias son:

– libcommons-launcher-java
– libcommons-el-java
– java-gcj-compat-dev

La primera y la segunda se pueden «arreglar» pero la tercera habrá que hacerlo de otra forma.


# wget -c http://ftp.de.debian.org/debian/pool/main/libc/libcommons-collections-java/libcommons-collections-java_2.1.1-6_all.deb
# dpkg -i libcommons-collections-java_2.1.1-6_all.deb
# wget -c http://ftp.de.debian.org/debian/pool/main/libc/libcommons-logging-java/libcommons-logging-java_1.0.4-5_all.deb
# dpkg -i libcommons-logging-java_1.0.4-5_all.deb
# wget -c http://ftp.de.debian.org/debian/pool/main/libc/libcommons-launcher-java/libcommons-launcher-java_1.1-3_all.deb
# dpkg -i libcommons-launcher-java_1.1-3_all.deb
# wget -c http://ftp.de.debian.org/debian/pool/main/libs/libservlet2.4-java/libservlet2.4-java_5.0.30-3_all.deb
# dpkg -i libservlet2.4-java_5.0.30-3_all.deb
# wget -c http://ftp.de.debian.org/debian/pool/main/libc/libcommons-el-java/libcommons-el-java_1.0-3_all.deb
# dpkg -i libcommons-el-java_1.0-3_all.deb

– Para arreglar la última nos descargaremos el fichero [ecj.jar->http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.2-200606291905/ecj.jar&url=http://www.mirrorservice.org/sites/download.eclipse.org/eclipseMirror/eclipse/downloads/drops/R-3.2-200606291905/ecj.jar&mirror_id=96%5D
y lo copiaremos en el lugar apropiado. (gracias [Abs->http://www.fingertap.org/%5D por la info


# cp ecj.jar /usr/share/java/

Con eso (y el SDK de sun) ya no necesitamos el {java-gcj-compat-dev} asi que lo borramos de las dependencias.

Editamos el fichero {tomcat5.5/debian/control} y borramos toda referencia a {java-gcj-compat-dev}

Cuando ya tenemos todo esto dentro del directorio tomcat5.5 ejecutamod


# svn-buildpackage --svn-ignore -uc -us -rfakeroot

y magicamente tendremos nuestros .deb.. que podemos instalar con dpkg.

9 comentarios en “JAVA 1.5 + MySQL 5 + Tomcat 5.5 en Debian Sarge 3.1

  1. DeAlEr

    tengo un par de dudas ..

    despues de este comando ..

    svn-buildpackage –svn-ignore -uc -us -rfakeroot

    y que como dices tu..

    magicamente tendremos nuestros .deb.. que podemos instalar con dpkg.

    el tomcat lo quiero dejar en /home/tomcat
    por lo cual cuando use el comando

    # svn co svn://svn.debian.org/svn/pkg-java/branches/tomcat5/tomcat5.5.x/
    # cd tomcat5.5.x/

    este me lo dejo donde yo estaba parado .. en este caso en mi home..

    gracias..

    en todo caso muy bueno el howto .. es el mejor que encontre para todo lo que quiero ..

    Me gusta

  2. Gustavo Castro

    Bien todo alguna dependencia mas que me faltaba nada complejo, excelente el apunte. solo una cosa me falla el ultimo comando
    svn-buildpackage —svn-ignore -uc -us -rfakeroot
    Ignora las cosas que borra eso OK pero cuando …
    pego la salida del error

    rm -f LICENSE
    trunkDir: /root/tomcat5.5.x
    trunkUrl: svn://svn.debian.org/svn/pkg-java/branches/tomcat5/tomcat5.5.x
    dpkg-checkbuilddeps
    mergeWithUpstream mode detected, looking for (location unknown)
    I: mergeWithUpstream property set, looking for upstream source tarball…
    E: Could not find the origDir directory, please check the settings!

    Que es lo que pasa aqui??

    Muchas gracias.

    Me gusta

  3. Probablemente no sea capaz de descargar el TGZ para la compilación. Puede ser que lo hayan borrado o que hayan cambiado el nombre del archivo. De todas formas creo que en debian 4.0 se liberó tomcat 5.0, con lo que con actualizar no sería necesario todo este follon.

    Me gusta

Responder a Mont Cancelar la respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s