instale sun java 6 y sun java 7 lado a lado en linux (fedora 16) usando rpm

8

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 .binarchivo 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:

  1. 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)
  2. ¿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?
  3. ¿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?

alfo_1205
fuente

Respuestas:

3

Tuve problemas similares para que Oracle java y OpenJDK existieran uno al lado del otro en Fedora 16. Seguí la guía sobre Si no es cierto, entonces es falso y funcionó perfectamente.

bfj7
fuente
55
¿Podría resumir el artículo aquí? Preferimos que no solo enlace artículos aquí.
Simon Sheehan
14

Esta es la forma más simple, cuando obtiene este error:

package jdk.... (which is newer than jdk...) is already installed

Use la --forcebandera para instalar varias versiones.

Así por ejemplo:

sudo rpm -ivh --force jdk-6u35-linux-amd64.rpm
Cojones
fuente
2

jdk-7u2-linux-x64.rpmes más reciente que jdk-6u30-linux-amd64.rpmy 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

Dejan
fuente
1

Creo que Dejan tiene razón al instalar los tarballs de Java en lugar de los RPM. Si configura JAVA_HOMEy PATHutiliza 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.biny un *.bin. En este caso, el *.binarchivo es en realidad un archivo autoextraíble que da como resultado el directorio habitual JAVA_HOME cuando lo ejecuta.

Kevin Cross
fuente
0

Para instalar Java Runtime Environment en Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.

# yum install java-1.7.0-openjdk

Para instalar paquetes para desarrollar programas usando Java en Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.

# yum install java-1.7.0-openjdk-devel

de http://namhuy.net/1195/how-to-install-oracle-java-jdk-7.html

Johny
fuente