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?
Esta es la forma más simple, cuando obtiene este error:
Use la
--force
bandera para instalar varias versiones.Así por ejemplo:
fuente
jdk-7u2-linux-x64.rpm
es más reciente quejdk-6u30-linux-amd64.rpm
y la herramienta de administración de paquetes RPM es lo suficientemente inteligente como para sobrescribirla con la versión más reciente.La forma más fácil de instalar sun java 6 y sun java 7 en paralelo es descargar los tarballs de Java desde Oracle y extraerlos en
/opt
fuente
Creo que Dejan tiene razón al instalar los tarballs de Java en lugar de los RPM. Si configura
JAVA_HOME
yPATH
utiliza correctamente la mayoría de los usos, no necesitará la configuración adicional que le proporciona la instalación de RPM (consulte esta página para obtener detalles de lo que realmente hace jexec ).Un problema podría ser que algunas versiones del JDK no hacen que un tarball (
*.tar.gz
) esté disponible, sino que solo le dan un a*-rpm.bin
y un*.bin
. En este caso, el*.bin
archivo es en realidad un archivo autoextraíble que da como resultado el directorio habitual JAVA_HOME cuando lo ejecuta.fuente
Para instalar Java Runtime Environment en Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.
Para instalar paquetes para desarrollar programas usando Java en Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.
de http://namhuy.net/1195/how-to-install-oracle-java-jdk-7.html
fuente