instale sun java 6 e sun java 7 lado a lado no linux (fedora 16) usando rpm


8

É isso que eu gostaria de alcançar, mas estou falhando (sou iniciante no Linux).

Eu tenho uma caixa Fedora 16 (64 bits) e gostaria de instalar várias versões do oracle java (java 6 e java 7 no momento). Estou tentando instalar o java usando o software rpm e gostaria de instalar os dois em /opt.

Eu baixei os pacotes necessários do site Oracle:

jdk-6u30-linux-x64-rpm.bin
jdk-7u2-linux-x64.rpm

e extraiu o pacote rpm de dentro do .binarquivo em execução

./jdk-6u30-linux-x64-rpm.bin -x

obtendo a seguinte situação:

jdk-6u30-linux-amd64.rpm
jdk-7u2-linux-x64.rpm

Então eu olhei para dentro jdk-6u30-linux-amd64.rpm com:

rpm -qpl ~/Downloads/jdk-7u2-linux-x64.rpm

e obteve que o java 6 instalará seus arquivos em:

/etc                   (some files)
/usr/java/jdk1.6.0\_30 (the majority of the files)

De maneira semelhante, o java 7 será instalado no:

/etc
/usr/java/jdk1.7.0\_02

Como eu quero instalar /opt, tentei instalar usando a realocação de rpm . Ambos os pacotes parecem ser realocáveis ​​por rpm:

rpm -qpi ~/Downloads/jdk-6u30-linux-amd64.rpm | grep -i reloc

dá como resultado

Relocations : /usr/java

e

rpm -qpi ~/Downloads/jdk-7u2-linux-x64.rpm | grep -i reloc

dá como resultado

Relocations : /usr/java

Tentativa 1 (instale o java 6 e depois o java 7)

sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm

isso funciona quase sem problemas porque a rotação diz

ln: failed to create symbolic link '/usr/java/jdk1.6.0\_30': No such file or directory`

rpm -q jdk

diz

jdk-1.6.0\_30-fcs.x86\_64_ ... OK!

então

sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm

falha tremendamente dizendo:

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*

Tentativa 2 (instale o java 7 e depois o java 6)

tendo instalado o java 6, eu o removerei primeiro:

sudo rpm -e jdk*
sudo rpm -q jdk*

dá:

package jdk is not installed* <- OK, uninstalled!

então vamos tentar instalar o java 7

sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm*

dá o erro usual:

ln: failed to create symbolic link '/usr/java/jdk1.7.0_02': No such file or directory`*

e agora java 6

sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm*

falha ao dizer duas coisas:

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*

e

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*

Minhas perguntas são:

  1. problema de criação de link simbólico: existe uma maneira de corrigi-lo? o processo de instalação parece não estar ciente de que tentei usar o mecanismo de realocação, mesmo se o pacote for realocável (tanto quanto eu vejo)
  2. estou faltando alguma coisa no processo de instalação? É realmente possível ter o java 6 e o ​​java 7 na mesma máquina Linux? Quão? O que estou fazendo errado?
  3. Existe outra maneira de alcançar meu objetivo?

PS: esta é minha primeira pergunta aqui. Peço desculpas antecipadamente se algo estiver errado (do meu inglês para a formatação e qualquer coisa) PS2: tentei adicionar a tag sun-java7-jdk a esta pergunta, mas não tenho reputação suficiente para fazê-lo ... essa tag deve Ser criado?

Respostas:


3

Tive problemas semelhantes ao fazer com que o Oracle java e o OpenJDK existissem lado a lado no Fedora 16. Segui o guia sobre If not True e False e funcionou perfeitamente.


5
Você poderia resumir o artigo aqui? Preferimos que você não apenas vincule artigos aqui.
Simon Sheehan

14

Esta é a maneira mais simples, quando você receber este erro:

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

Use o --forcesinalizador para instalar várias versões.

Então, por exemplo:

sudo rpm -ivh --force jdk-6u35-linux-amd64.rpm

2

jdk-7u2-linux-x64.rpmé mais recente jdk-6u30-linux-amd64.rpme a ferramenta de gerenciamento de pacotes RPM é inteligente o suficiente para substituí-la pela versão mais recente.

A maneira mais fácil de instalar sun java 6 e sun java 7 lado a lado é fazer o download dos tarballs Java do Oracle e extraí-los para /opt


1

Eu acho que Dejan está correto sobre a instalação dos tarballs Java em vez do RPM. Se você configurar seu JAVA_HOMEe a PATHmaioria dos usos corretamente, não precisará da configuração adicional fornecida pela instalação do RPM (consulte esta página para obter detalhes sobre o que o jexec realmente faz ).

Um problema pode ser que algumas versões do JDK não disponibilizam um tarball ( *.tar.gz), mas apenas fornecem a *-rpm.bine a *.bin. Nesse caso, o *.binarquivo é realmente apenas um archive auto-extraível que resulta no diretório JAVA_HOME usual quando você o executa.


0

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

# yum install java-1.7.0-openjdk

Para instalar pacotes para o desenvolvimento de programas usando Java no Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.

# yum install java-1.7.0-openjdk-devel

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.