Questo è ciò che vorrei ottenere, ma non ci riesco (sono un principiante in Linux).
Ho un box Fedora 16 (64 bit) e vorrei installare più versioni di Oracle Java (java 6 e java 7 per il momento). Sto provando a installare java usando il software rpm e vorrei installarli entrambi sotto /opt
.
Ho scaricato i pacchetti richiesti dal sito Oracle:
jdk-6u30-linux-x64-rpm.bin
jdk-7u2-linux-x64.rpm
ed estratto il pacchetto rpm dall'interno del .bin
file in esecuzione
./jdk-6u30-linux-x64-rpm.bin -x
ottenere la seguente situazione:
jdk-6u30-linux-amd64.rpm
jdk-7u2-linux-x64.rpm
Poi ho guardato dentro jdk-6u30-linux-amd64.rpm
con:
rpm -qpl ~/Downloads/jdk-7u2-linux-x64.rpm
e ottenuto che Java 6 installerà i suoi file in:
/etc (some files)
/usr/java/jdk1.6.0\_30 (the majority of the files)
In modo simile, java 7 verrà installato in:
/etc
/usr/java/jdk1.7.0\_02
Perché voglio installare /opt
ho provato a installare usando il trasferimento rpm . Entrambi i pacchetti sembrano essere trasferibili in rpm, in effetti:
rpm -qpi ~/Downloads/jdk-6u30-linux-amd64.rpm | grep -i reloc
dà come risultato
Relocations : /usr/java
e
rpm -qpi ~/Downloads/jdk-7u2-linux-x64.rpm | grep -i reloc
dà come risultato
Relocations : /usr/java
Tentativo 1 (installa java 6 e quindi java 7)
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm
questo funziona quasi senza intoppi perché dice rpm
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!
poi
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm
fallisce tremendamente dicendo:
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*
Tentativo 2 (installa java 7 e quindi java 6)
avendo già installato java 6 lo rimuoverò per primo:
sudo rpm -e jdk*
sudo rpm -q jdk*
dà:
package jdk is not installed* <- OK, uninstalled!
quindi proviamo a installare java 7
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm*
dà il solito errore:
ln: failed to create symbolic link '/usr/java/jdk1.7.0_02': No such file or directory`*
e ora java 6
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm*
non riesce a dire due cose:
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*
Le mie domande sono:
- problema di creazione di collegamenti simbolici: esiste un modo per risolverlo? il processo di installazione sembra non essere consapevole del fatto che ho cercato di utilizzare il meccanismo di trasferimento, anche se il pacchetto è trasferibile (per quanto vedo)
- mi manca qualcosa nel processo di installazione? È davvero possibile avere sia java 6 che java 7 sulla stessa macchina Linux? Come? Che cosa sto facendo di sbagliato?
- C'è un altro modo per raggiungere il mio obiettivo?
PS: questa è la mia prima domanda qui. Mi scuso in anticipo se qualcosa non va (dal mio inglese alla formattazione e altro) PS2: ho provato ad aggiungere il tag sun-java7-jdk a questa domanda ma non ho abbastanza reputazione per farlo ... dovrebbe questo tag essere creato?