Cómo instalar la JDK de SUN en Fedora Linux

0
16005

Creación: 04-02-2010

Índice de contenidos

1.Introducción
2. Entorno
3.Instalar la JDK
4.Dando de alta las alternativas
5.Dando de alta la alternativa para el plugin de Java para el Firefox
6.Conclusiones
7. Sobre el autor


1. Introducción

Fedora (http://fedoraproject.org/) es una distribución de Linux bastante conocida y extendida. Podríamos decir que es la versión open source de RedHat para entornos de escritorio (CentOS sería un poco el quivalente pero para entornos de servidor).

En este tutorial vamos a ver cómo instalar la JDK de SUN. En muchos casos esto no tiene por qué ser necesario ya que Fedora ya trae una máquina virtual para Java, pero al no ser la “oficial” podemos encontrarnos con algunas incompatibilidades.


2. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Asus G1S 15′ (2.20 GHz Intel Core 2 Duo, 2GB, 141GB SATA).
  • NVIDIA GeForce 8600M
  • Sistema Operativo: Linux Fedora 12
  • JDK 6.18, de Sun (Oracle)


3. Instalar la JDK

Aquí no hay nada nuevo, simplemente nos bajamos la JDK de Sun
(http://java.sun.com/javase/downloads/index.jsp)
y la instalamos. Al ir a descargarla podemos elegir entre un fichero binario, o un rpm. Da igual, pero yo recomendaría el rpm por el hecho de que se quede reflejada la instalación en nuestro sistema de paquetes.


4. Dando de alta las alternativas

En los sistemas Linux actuales existe una herramienta que nos permite seleccionar entre varias alternativas para un tipo de aplicación. Por ejemplo podemos indicar cual es el editor por defecto: el vim, el gpad, … En el caso que nos aborda, gracias a esta herramienta vamos a poder indicar que hemos instalado un nuevo Java, y que éste está disponible para usar por el sistema, de hecho lo convertiremos en nuestro Java por defecto.

Fedora es un sistema moderno, así que también dispone de esta interesante herramienta.

Supongamos que hemos nuestro JAVA_HOME está apuntando a /usr/java/default (realmente esto es un enlace simbólico a la JDK que hemos instalado en el paso anterior)

Podríamos hacer algo como:

# alternatives --install /usr/bin/java 
java $JAVA_HOME/bin/java 2000 --slave /usr/bin/keytool 
keytool $JAVA_HOME/bin/keytool --slave /usr/bin/rmiregistry 
rmiregistry $JAVA_HOME/bin/rmiregistry --slave /usr/lib/jvm/jre 
jre $JAVA_HOME/jre --slave /usr/lib/jvm-exports/jre
jre_exports $JAVA_HOME/jre/lib/ --slave /usr/bin/javaws
javaws $JAVA_HOME/jre/javaws/javaws --slave /usr/bin/orbd
orbd $JAVA_HOME/bin/orbd --slave /usr/bin/pack200
pack200 $JAVA_HOME/bin/pack200 --slave /usr/bin/rmid 
rmid $JAVA_HOME/bin/rmid --slave /usr/bin/servertool
servertool $JAVA_HOME/bin/servertool --slave /usr/bin/tnameserv 
tnameserv $JAVA_HOME/bin/tnameserv --slave /usr/bin/unpack200
unpack200 $JAVA_HOME/bin/unpack200

Para ver que todo esta correctamente podemos ejecutar el siguiente comando. Lo importante es ver como tenemos una segunda entrada “/usr/java/default/bin/java”:

# alternatives --display java
java - status is manual.
 link currently points to /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
/usr/lib/jvm/jre-1.6.0-openjdk/bin/java - priority 16000
 slave javaws: /usr/lib/jvm/jre-1.6.0-openjdk/bin/javaws
 slave keytool: /usr/lib/jvm/jre-1.6.0-openjdk/bin/keytool
 slave orbd: /usr/lib/jvm/jre-1.6.0-openjdk/bin/orbd
 slave pack200: /usr/lib/jvm/jre-1.6.0-openjdk/bin/pack200
 slave rmid: /usr/lib/jvm/jre-1.6.0-openjdk/bin/rmid
 slave rmiregistry: /usr/lib/jvm/jre-1.6.0-openjdk/bin/rmiregistry
 slave servertool: /usr/lib/jvm/jre-1.6.0-openjdk/bin/servertool
 slave tnameserv: /usr/lib/jvm/jre-1.6.0-openjdk/bin/tnameserv
 slave unpack200: /usr/lib/jvm/jre-1.6.0-openjdk/bin/unpack200
 slave jre_exports: /usr/lib/jvm-exports/jre-1.6.0-openjdk
 slave jre: /usr/lib/jvm/jre-1.6.0-openjdk
 slave java.1.gz: /usr/share/man/man1/java-java-1.6.0-openjdk.1.gz
 slave keytool.1.gz: /usr/share/man/man1/keytool-java-1.6.0-openjdk.1.gz
 slave orbd.1.gz: /usr/share/man/man1/orbd-java-1.6.0-openjdk.1.gz
 slave pack200.1.gz: /usr/share/man/man1/pack200-java-1.6.0-openjdk.1.gz
 slave rmid.1.gz: /usr/share/man/man1/rmid-java-1.6.0-openjdk.1.gz
 slave rmiregistry.1.gz: /usr/share/man/man1/rmiregistry-java-1.6.0-openjdk.1.gz
 slave servertool.1.gz: /usr/share/man/man1/servertool-java-1.6.0-openjdk.1.gz
 slave tnameserv.1.gz: /usr/share/man/man1/tnameserv-java-1.6.0-openjdk.1.gz
 slave unpack200.1.gz: /usr/share/man/man1/unpack200-java-1.6.0-openjdk.1.gz
/usr/java/default/bin/java - priority 20000
 slave javaws: /usr/java/default/jre/javaws/javaws
 slave keytool: /usr/java/default/bin/keytool
 slave orbd: /usr/java/default/bin/orbd
 slave pack200: /usr/java/default/bin/pack200
 slave rmid: /usr/java/default/bin/rmid
 slave rmiregistry: /usr/java/default/bin/rmiregistry
 slave servertool: /usr/java/default/bin/servertool
 slave tnameserv: /usr/java/default/bin/tnameserv
 slave unpack200: /usr/java/default/bin/unpack200
 slave jre_exports: /usr/java/default/jre/lib/
 slave jre: /usr/java/default/jre
 slave java.1.gz: (null)
 slave keytool.1.gz: (null)
 slave orbd.1.gz: (null)
 slave pack200.1.gz: (null)
 slave rmid.1.gz: (null)
 slave rmiregistry.1.gz: (null)
 slave servertool.1.gz: (null)
 slave tnameserv.1.gz: (null)
 slave unpack200.1.gz: (null)
Current `best' version is /usr/java/default/bin/java.

Ahora solo nos queda configurar el sistema para que use la alternativa que acabamos de añadir:

# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
 + 1           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
*  2           /usr/java/default/bin/java

Enter to keep the current selection[+], or type selection number: 2

Para comprobar que todo es correcto podemos hacer:

# java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)

 


5. Dando de alta la alternativa para el plugin de Java para el Firefox

Ahora vamos ha hacer algo parecido para el plugin de Java para el navegador. Esto nos va a permitir ejecutar applets dentro del Firefox. Esta vez no vamos a usar el comando alternatives –instal, y no porque no queramos sino porque no funciona (por lo menos yo no he conseguido hacerlo funcionar ;). Así que lo que vamos ha hacer es editar directamente los ficheros de configuración del comando alterntaives:

cd /var/lib/alternatives
vi libjavaplugin.so

 

Y dejamos el fichero de la siguiente manera (lo interesante es ver como hemos añadido las dos líneas donde apuntamos al libnpjp2.so y le hemos puesto prioridad 20000):

manual
/usr/lib/mozilla/plugins/libjavaplugin.so

/usr/lib/jvm/jre-1.6.0-openjdk/lib/i386/IcedTeaPlugin.so
16000
/usr/java/default/jre/lib/i386/libnpjp2.so
20000

De nuevo, para comprobara que todo va bien:

# alternatives --display libjavaplugin.so 
libjavaplugin.so - status is manual.
 link currently points to /usr/java/default/jre/lib/i386/libnpjp2.so
/usr/lib/jvm/jre-1.6.0-openjdk/lib/i386/IcedTeaPlugin.so - priority 16000
/usr/java/default/jre/lib/i386/libnpjp2.so - priority 20000
Current `best' version is /usr/java/default/jre/lib/i386/libnpjp2.so.

Y para configurar la nueva alternativa como la opción por defecto:

# alternatives --config libjavaplugin.so 

There are 2 programs which provide 'libjavaplugin.so'.

  Selection    Command
-----------------------------------------------
  + 1           /usr/lib/jvm/jre-1.6.0-openjdk/lib/i386/IcedTeaPlugin.so
* 2           /usr/java/default/jre/lib/i386/libnpjp2.so

Y seleccionamos el 2

6. Conclusiones

Hay otros sistema como Debian o Ubuntu donde es mucho más fácil instalar la JDK de Sun porque ya viene en el propio sistema de paquetes. En este caso hemos visto como podemos instalar la JDK fuera del sistema de paquetes oficial de Fedora, pero usar el comando alternatives para integrar esta instalación con el resto del sistema.

El proceso no es muy intuitivo pero queda claro que este tipo de sistemas son cada vez más potentes y ya casi no hay nada que se nos resista o que no podamos hacer con casi cualquier distribución de Linux 😉

7. Sobre el autor

Alejandro Pérez García, Ingeniero en Informática (especialidad de Ingeniería del Software) y Certified ScrumMaster

Socio fundador de Autentia (Formación, Consultoría, Desarrollo de sistemas transaccionales)

mailto:alejandropg@autentia.com

Autentia Real Business Solutions S.L. – «Soporte a Desarrollo»

http://www.autentia.com

 

Alejandro es socio fundador de Autentia y nuestro experto en Java EE, Linux y optimización de aplicaciones empresariales. Ingeniero en Informática y Certified ScrumMaster. Seguir @alejandropgarci Si te gusta lo que ves, puedes contratarle para darte ayuda con soporte experto, impartir cursos presenciales en tu empresa o para que realicemos tus proyectos como factoría (Madrid). Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad