Java 1.3 en Ubuntu Feisty

Esta semana he estado trabajando con unas aplicaciones antiguas que requieren Java 1.3 por la versión del Application Server que están utilizando. Java 1.3 es bastante antiguo y depende de algunas bibliotecas igual de antiguas, piensen en esos tiempos en que no se usaba UTF-8 por omisión en Linux.

Tal como esperaba, no lo pude ejecutar directamente en Ubuntu Feisty, trate de darle algunas pistas al sistema, como el clásico LD_ASSUME_KERNEL pero tampoco tuve éxito. Al final, el procedimiento era bastante sencillo, pero bien podría haber perdido mucho más tiempo en esto. Estoy seguro de que alguien más agradecerá este tip (Hi Aldrin!)

Se necesitan 4 sencillos pasos:

Paso 1: Descargar Java 1.3 desde el sitio de Sun

  • Ir a http://java.sun.com/products/archive/
  • Seleccionar J2SDK 1.3 o J2RE 1.3 segun se necesite. Yo me fui por J2SDK 1.3.1_20

Paso 2: Cambiar los permisos y ejecutar el archivo .BIN para aceptar la licencia y descomprimir el archivo. Recomiendo hacer esto en el directorio /opt

cd /opt
chmod 755 ELARCHIVO.BIN
./ELARCHIVO.BIN

En mi caso, esto generó el directorio /opt/jdk1.3.1_20

Paso 3: Instalar libstdc++ compatible con esta version de Java. Ojo que el numero de version podria cambiar, lo importante es que sea 2.x

apt-get install libstdc++2.10-glibc2.2

Paso 4: Crear un link simbólico para que el binario de java pueda encontrar la biblioteca libstdc++ que espera. Ojo que las versiones pueden cambiar

cd /usr/lib
sudo ln -s /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so libstdc++-libc6.1-1.so.2

Con eso ya podrán ejecutar java, pero seguramente tendrán problemas por el soporte multilenguaje, entonces antes de ejecutar java asegurense de ejecutar

export LANG=en_US

Resultado final:

fcatrin@shaman:~$ /opt/jdk_1.3.1_20/bin/java -version
java version "1.3.1_20"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_20-b03)
Java HotSpot(TM) Client VM (build 1.3.1_20-b03, mixed mode)

Pasos opcionales pero convenientes
Con esos pasos podrán ejecutar java directamente con /opt/jdk_1.3.1_20/bin/java, pero es muy engorroso. Personalmente uso un método que me simplifica el problema de rutas y versiones de java. Todas las versiones de java instaladas las hago vivir en /opt. En ese directorio creo un enlace simbólico apuntando al nombre real del java instalado. Tengo algo asi:

java13 -> jdk1.3.1_20
java14 -> j2sdk1.4.2_02
java -> java14

Para crear uno de esos enlaces aplico:

cd /opt
ln -s jdk1.3.1_20 java13

De esta forma, java13 siempre sera /opt/java13 independiente del java instalado, y el java por omisión siempre sera /opt/java, y si lo deseo lo puedo cambiar para que apunte a java14 o java 13 depende de qué java quiero tener por omisión. En mi .bashrc dice :

export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH

Con eso tengo lo suficiente para que cualquier aplicación java que ejecute utilice el java por omisión (1.4 en este caso). Para el caso de java13 me cree un script /usr/local/bin/java13 que dice:

export JAVA_HOME=/opt/java13
export PATH=$JAVA_HOME/bin:$PATH
export LANG=en_US

Entonces cuando requiero java 1.3 simplemente ejecuto source java13 y listo. De esta forma:

fcatrin@shaman:~$ java -version
java version "1.4.2_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03)
Java HotSpot(TM) Client VM (build 1.4.2_02-b03, mixed mode)
fcatrin@shaman:~$ source java13
fcatrin@shaman:~$ java -version
java version "1.3.1_20"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_20-b03)
Java HotSpot(TM) Client VM (build 1.3.1_20-b03, mixed mode)

oportuncrisis = frinki con ubuntu

Según los recursos del diccionario de GNOME, el termino crisis se puede definir como : el punto en el tiempo donde se decide al curso de acción a seguir o a ser modificado, o terminar. El momento decisivo, el punto de quiebre. Según Lisa Simpson.. crisis = oportunidad, y según Homero.. es oportuncrisis.

La historia comienza a altas horas de la madrugada del lunes, quizas motivado por algunos grados demás en la bebida me puse a experimentar con software suspend entre otras cosas. Para hacer el cuento corto, termine con mi reiserfs corrupto.

Aun tenia acceso a los archivos, y estaba listo para iniciar el proceso conocido como salvese quien pueda cuando se me ocurrió la excelente idea de tratar de arreglar el problema, annnnnteeeessss que respaldar. Luego otros errores mas, como presionar ctrl-c mientras se sincronizaba parte del filesystem, o rebootear después de que init se fuera de segfault.

En esos momentos, la primera frase que se me vino a la cabeza fue : «a mis archivos se los llevó el señor«. Pero ya había pasado por una situación similar antes y en vez de golpear mi teclado para transformarlo en un teclado no-querty… decidí tomarlo con calma.. si he dicho tomarlo (Hi JCI!)… con calma…. y comencé a pensar en las distintas alternativas para recuperar al menos el único archivo realmente importante que tenia en esa partición. El resto esta en algunos CVS, en IMAP y en otros lugares de internet que no voy a mencionar. (no no seba, no en sitios para adultos).

Por unos momentos mi sistema de archivos se fue caminando por el tunel hacia la luz.. pero después de aplicar algunas dosis de paciencia, improvisación en guitarra, cafe, y muchos comandos aprendidos a punta de –help, logré recuperar gran parte del sistema de archivos.

Esa fue la crisis, y a partir de ese momento se transformo en oportuncrisis. No tenia ningún CD de Fedora a la mano. El unico DVD lo regale en Rancagua, y descargar uno me tomaría muchas horas. de alguna forma tenia que volver con el equipo andando al trabajo o bien declararme con demencia senil (a algunos les resulta).

Lo unico que tenia a mano eran unos CD’s de Ubuntu 5.04 que un alumno del semestre pasado me regaló, pero estaba todo rayado a estas alturas… entonces aplique uno que me quedaba de 4.10, instalé, actualicé por apt a 5.04, y desde ayer soy un nuevo usuario de Ubuntu. Han visto el temporal de de viento y lluvia de hoy?

En linea se encuentran fotos de la maniobra de panico y rescate.

Ubuntu se une a la mejora del tiempo de boot de Linux

Esta semana Daniel Stone y compañía fueron motivados por el llamado de Owen Taylor para optimizar el tiempo de booteo de Linux , y comenzaron a hacer cambios en Ubuntu.

Una de las cosas mas interesantes es que redujeron enormemente la cantidad de acceso a archivos en Xorg , tenia algunas cosas que parece que nunca se habian revisado desde esta perspectiva.

Aun no superan la barrera de tener un login antes de los 40 segundos, los scripts que tienen para hotplug son los culpables y ya estan trabajando en eso.

Joven activista Linux

Pablo Estefó, quien renovó su blog, me cuenta que en su colegio hicieron una presentación de Linux a sus profesores y compañeros. Al final de la presentación regalaron CDs de Ubuntu. Y después dicen que los jóvenes «no están ni ahí». Bravo por mi amigo Gotcha!

Matrimonio a la vista

Este fin de semana fui invitado por mi amigo Raul Rondini a un almuerzo muy especial. Raul decidió dar una sorpresa a todos y le pidió matrimonio a su polola Daniela.

Fue un momento bastante intenso, los papás de ella estaban muy emocionados, y después comentaban que «se veía venir», que que era extraña la presencia de tantos amigos en un almuerzo familiar. Todos estábamos super felices, incluso cuentan las malas lenguas que hasta Marcos Ramirez se emocionó 😉

Hubieron muchas bromas en el sentido de que Raul ya no podrá comprarse todos los chiches, basta ver su bateria que es un autentico monstruo.

Con Raul nos conocemos hace años, tenemos unos gustos musicales muy similares y durante un tiempo estuvimos tocando juntos en un proyecto llamado Crystal Magic, en donde Raul tocaba la batería. También en el grupo estaba Heine en la voz, Denis en el bajo, Giorgio en el teclado y obviamente yo en la guitarra.

Ese día no fue Giorgio, pero justo había otro tecladista (Claudio), que lo conocía porque toca en una banda de tributo a Dream Theater (Glass Moon). Heine, quien también estaba ahi y que actualmente es el vocalista de Glass Moon, llevó una guitarra por si nos animábamos a tocar. No se dio la oportunidad, pero con Claudio quedamos de juntarnos. Aprovechamos de sacarnos una foto «premonitoria» en donde aparecemos Raul, Heine, Claudio y yo.