Esto es lo que me gustaría lograr, pero estoy fallando (soy un novato en Linux).
Tengo una caja Fedora 16 (64 bits) y me gustaría instalar varias versiones de Oracle Oracle (Java 6 y Java 7 por el momento). Estoy tratando de instalar Java usando el software rpm y me gustaría instalar ambos debajo /opt
.
Descargué los paquetes requeridos del sitio de Oracle:
jdk-6u30-linux-x64-rpm.bin
jdk-7u2-linux-x64.rpm
y extrajo el paquete rpm del interior del .bin
archivo en ejecución
./jdk-6u30-linux-x64-rpm.bin -x
obteniendo la siguiente situación:
jdk-6u30-linux-amd64.rpm
jdk-7u2-linux-x64.rpm
Luego miré adentro jdk-6u30-linux-amd64.rpm
con:
rpm -qpl ~/Downloads/jdk-7u2-linux-x64.rpm
y obtuve que java 6 instalará sus archivos en:
/etc (some files)
/usr/java/jdk1.6.0\_30 (the majority of the files)
De manera similar, Java 7 se instalará en:
/etc
/usr/java/jdk1.7.0\_02
Como quiero instalar /opt
, traté de instalar usando la reubicación de rpm . Ambos paquetes parecen ser reubicables por rpm, de hecho:
rpm -qpi ~/Downloads/jdk-6u30-linux-amd64.rpm | grep -i reloc
da como resultado
Relocations : /usr/java
y
rpm -qpi ~/Downloads/jdk-7u2-linux-x64.rpm | grep -i reloc
da como resultado
Relocations : /usr/java
Intento 1 (instale java 6 y luego java 7)
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm
esto funciona casi sin problemas porque rpm dice
ln: failed to create symbolic link '/usr/java/jdk1.6.0\_30': No such file or directory`
rpm -q jdk
dice
jdk-1.6.0\_30-fcs.x86\_64_ ... OK!
entonces
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm
falla tremendamente diciendo:
file /etc/init.d/jexec from install of
jdk-2000:1.7.0\_02-fcs.x86\_64* conflicts with file from package
jdk-2000:1.6.0\_30-fcs.x86\_64*
Intento 2 (instale java 7 y luego java 6)
habiendo instalado java 6, lo eliminaré primero:
sudo rpm -e jdk*
sudo rpm -q jdk*
da:
package jdk is not installed* <- OK, uninstalled!
entonces intentemos instalar java 7
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm*
da el error habitual:
ln: failed to create symbolic link '/usr/java/jdk1.7.0_02': No such file or directory`*
y ahora java 6
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm*
falla al decir dos cosas:
package jdk-2000:1.7.0\_02-fcs.x86\_64 (which is newer than jdk-2000:1.6.0\_30-fcs.x86\_64) is already installed*
y
file /etc/init.d/jexec from install of jdk-2000:1.6.0\_30-fcs.x86\_64
conflicts with file from package jdk-2000:1.7.0\_02-fcs.x86\_64*
Mis preguntas son:
- problema de creación de enlaces simbólicos: ¿hay alguna manera de solucionarlo? el proceso de instalación parece no ser consciente de que intenté usar el mecanismo de reubicación, incluso si el paquete es reubicable (por lo que veo)
- ¿Me falta algo en el proceso de instalación? ¿Es realmente posible tener java 6 y java 7 en la misma máquina Linux? ¿Cómo? ¿Qué estoy haciendo mal?
- ¿Hay otra forma de lograr mi objetivo?
PD: esta es mi primera pregunta aquí. Pido disculpas de antemano si algo está mal (desde mi inglés hasta el formato y cualquier otra cosa) PS2: intenté agregar la etiqueta sun-java7-jdk a esta pregunta pero no tengo suficiente reputación para hacerlo ... si esta etiqueta ¿ser creado?