viernes, 23 de marzo de 2007

INSTALAR Y CONFIGURAR JAVA EN REDHAT

Si no hay opción de instalar java a través de los repositorios oficiales de nuestra distribución, que sería la opción recomendada,
también es posible instalar java de forma manual.

Lo primero es descargar de http://java.sun.com la versión de java que queramos utilizar. En el caso de RedHat es
siempre conveniente descargar la versión que acaba con extensión rpm.bin, ya que de esta forma, podremos instalar
java con el comando rpm -i nombre_de_la_version_de_java.rpm. Una vez descargado el archivo cambiaremos los permisos
con chmod +x nombre_de_la_version_de_java.rpm.bin y luego lo ejecutamos ./nombre_de_la_version_de_java.rpm.bin, se generará
un archivo nombre_de_la_version_de_java.rpm, ejecutamos entonces rpm -i nombre_de_la_version_de_java.rpm y tendremos java instalado.
Normalmente estará en /usr/java/nombre_de_la_version_de_java/. Si no está aquí podemos ejecutar como root updatedb y luego hacer un
locate /bin/javac, para ver el directorio donde está java instalado.

Ahora ya está java instalado, pero si ejecutamos java nos saldrá esto:

libgcj-java-placeholder.sh

This script is a placeholder for the /usr/bin/java
master link required by jpackage.org conventions. libgcj's
rmiregistry, rmic and jar tools are now slave symlinks to these
masters, and are managed by the alternatives(8) system.

...

Esta no es la versión de java que necesitamos, para configurarlo lo mejor (tal y como dice el libgcj-java-placeholder.sh) es utilizar alternatives.
Alternatives nos permite tener distintas versiones de un mismo componente e intercambiar entre ellas de forma transparente, sin tocar archivos
de configuración o paths:

[root@equipo /]# update-alternatives
versiones alternativas 1.3.11 - Copyright (C) 2001 Red Hat, Inc.
Este programa puede que sea libremente distribuido bajo los términos de la
licencia pública de GNU.
uso: alternativas --install <link> <name> <path> <priority>
[--initscript <service>]
[--slave <link> <name> <path>]*
alternatives --remove <name> <path>
alternatives --auto <name>
alternatives --config <name>
alternatives --display <name>
alternatives --set <name> <path>

opciones comunes: --verbose --test --help --usage --version
--altdir <directory> --admindir <directory>

Lo que tenemos que hacer es añadir (--install) el nuevo java y para ello necesitamos saber la ruta del ejecutable de java:

[root@equipo /]# locate java | grep bin/java
/usr/sbin/javaconfig
/usr/bin/java
/usr/bin/javac
/usr/bin/java_cup
/usr/bin/java_cup-10.11
/usr/java/j2sdk1.4.2_13/bin/java-rmi.cgi
/usr/java/j2sdk1.4.2_13/bin/java
/usr/java/j2sdk1.4.2_13/bin/javac
/usr/java/j2sdk1.4.2_13/bin/javadoc
/usr/java/j2sdk1.4.2_13/bin/javah
/usr/java/j2sdk1.4.2_13/bin/javap
/usr/java/j2sdk1.4.2_13/jre/bin/java
/usr/java/j2sdk1.4.2_13/jre/bin/java_vm

El que nos interesa es /usr/java/j2sdk1.4.2_13/bin/java. Ahora simplemente hay que ejecutar el comando de instalación en el que le
decimos el nombre del enlace simbólico (/usr/bin/java) el nombre del paquete (java), la ruta del ejecutable java y la prioridad (300 por
defecto):

[root@equipo /]# update-alternatives --install /usr/bin/java java /usr/java/j2sdk1.4.2_13/bin/java 300

Para terminar comprobamos que ahora java utiliza el ejecutable que necesitamos y hacemos un java -version:

[root@equipo /]# update-alternatives --config java

Hay 2 programas que proporcionan 'java'.

Selección Comando
-----------------------------------------------
1 /usr/share/java/libgcj-java-placeholder.sh
*+ 2 /usr/java/j2sdk1.4.2_13/bin/java

Presione Intro para mantener la selección actual[+], o escriba el número de la selección:

[root@equipo /]# java -version
java version "1.4.2_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_13-b06)
Java HotSpot(TM) Client VM (build 1.4.2_13-b06, mixed mode)
[root@equipo /]#

Más información en:
http://www.yiluda.net/manual/linux/man/alternatives.html
http://blog.stevenkroon.com/2006/08/29/debian-update-alternatives

2 comentarios:

pardo 89 dijo...

para este red hat no pense ke se necesitava una version atrazada por ke ese j2vac es un poco antigua osea ke este sistema operativo ke??????
como es su funcionamiento......esa es mi pregunta este sistema operativo tiene una buena funcionalidad

Naguito dijo...

Estoy en el trabajo y la verdad con este tutorial me salvaste la vida MAAALL, se te agradece(un poco tarde el comentario ajja), gracias!