Dies ist, was ich erreichen möchte, aber ich versage (ich bin ein Neuling in Linux).
Ich habe eine Fedora 16-Box (64 Bit) und möchte mehrere Versionen von Oracle Java installieren (Java 6 und Java 7 für den Moment). Ich versuche Java mit der RPM-Software zu installieren und möchte beide unter installieren /opt
.
Ich habe die erforderlichen Pakete von der Oracle-Site heruntergeladen:
jdk-6u30-linux-x64-rpm.bin
jdk-7u2-linux-x64.rpm
und extrahierte das RPM-Paket aus der .bin
laufenden Datei
./jdk-6u30-linux-x64-rpm.bin -x
Erhalten der folgenden Situation:
jdk-6u30-linux-amd64.rpm
jdk-7u2-linux-x64.rpm
Dann schaute ich hinein jdk-6u30-linux-amd64.rpm
mit:
rpm -qpl ~/Downloads/jdk-7u2-linux-x64.rpm
und erhalten, dass Java 6 seine Dateien in installiert:
/etc (some files)
/usr/java/jdk1.6.0\_30 (the majority of the files)
In ähnlicher Weise wird Java 7 installiert in:
/etc
/usr/java/jdk1.7.0\_02
Da ich in installieren möchte, habe /opt
ich versucht, mit RPM-Verschiebung zu installieren . Beide Pakete scheinen in der Tat rpm-verlagerbar zu sein:
rpm -qpi ~/Downloads/jdk-6u30-linux-amd64.rpm | grep -i reloc
gibt als Ergebnis
Relocations : /usr/java
und
rpm -qpi ~/Downloads/jdk-7u2-linux-x64.rpm | grep -i reloc
gibt als Ergebnis
Relocations : /usr/java
Versuch 1 (Java 6 und dann Java 7 installieren)
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm
Dies läuft fast reibungslos, weil U / min sagt
ln: failed to create symbolic link '/usr/java/jdk1.6.0\_30': No such file or directory`
rpm -q jdk
sagt
jdk-1.6.0\_30-fcs.x86\_64_ ... OK!
dann
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm
scheitert enorm zu sagen:
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*
Versuch 2 (Java 7 und dann Java 6 installieren)
Nachdem ich Java 6 noch installiert habe, werde ich es zuerst entfernen:
sudo rpm -e jdk*
sudo rpm -q jdk*
gibt:
package jdk is not installed* <- OK, uninstalled!
Versuchen wir dann, Java 7 zu installieren
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm*
gibt den üblichen Fehler:
ln: failed to create symbolic link '/usr/java/jdk1.7.0_02': No such file or directory`*
und jetzt Java 6
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm*
sagt zwei Dinge nicht:
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*
und
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*
Meine Fragen sind:
- Problem bei der Erstellung symbolischer Links: Gibt es eine Möglichkeit, dieses Problem zu beheben? Dem Installationsprozess scheint nicht bewusst zu sein, dass ich versucht habe, den Umzugsmechanismus zu verwenden, auch wenn das Paket umsetzbar ist (soweit ich das sehe).
- Fehlt mir etwas im Installationsprozess? Ist es wirklich möglich, Java 6 und Java 7 auf demselben Linux-Computer zu haben? Wie? Was mache ich falsch?
- Gibt es einen anderen Weg, um mein Ziel zu erreichen?
PS: Das ist meine erste Frage hier. Ich entschuldige mich im Voraus, wenn etwas nicht stimmt (von meinem Englisch über die Formatierung bis hin zu irgendetwas). PS2: Ich habe versucht , dieser Frage das Tag sun-java7-jdk hinzuzufügen , aber ich habe nicht genug Ruf, um es zu tun ... sollte dieses Tag erstellt werden?