É 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 .bin
arquivo 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:
- 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)
- 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?
- 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?
Esta é a maneira mais simples, quando você receber este erro:
Use o
--force
sinalizador para instalar várias versões.Então, por exemplo:
fonte
jdk-7u2-linux-x64.rpm
é mais recentejdk-6u30-linux-amd64.rpm
e 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
fonte
Eu acho que Dejan está correto sobre a instalação dos tarballs Java em vez do RPM. Se você configurar seu
JAVA_HOME
e aPATH
maioria 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.bin
e a*.bin
. Nesse caso, o*.bin
arquivo é realmente apenas um archive auto-extraível que resulta no diretório JAVA_HOME usual quando você o executa.fonte
Para instalar o Java Runtime Environment no Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.
Para instalar pacotes para o desenvolvimento de programas usando Java no Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.
from http://namhuy.net/1195/how-to-install-oracle-java-jdk-7.html
fonte