Installieren Sie Sun Java 6 und Sun Java 7 nebeneinander (Linux) (Fedora 16) mit U / min

36141
alfo_1205

Das würde ich gerne erreichen, aber ich versage (ich bin ein Neuling in Linux).

Ich habe eine Fedora 16-Box (64 Bit) und möchte mehrere Versionen von Orakel Java (Java 6 und Java 7 für den Moment) installieren. Ich versuche, Java mit der RPM-Software zu installieren, und ich 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 .binlaufenden Datei

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

folgende Situation erreichen:

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

Dann schaute ich 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 installieren möchte, habe /optich versucht, die RPM-Verschiebung zu installieren . Beide Pakete scheinen 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 (Installieren Sie Java 6 und dann Java 7)

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

das läuft fast reibungslos, weil rpm 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 

versagt ungeheuerlich:

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 (Installieren Sie Java 7 und dann Java 6)

Nachdem ich Java 6 installiert habe, entferne ich es zuerst:

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

gibt:

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

dann versuchen wir, 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 nicht zwei Dinge:

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:

  1. Problem bei der Erstellung symbolischer Links: Gibt es eine Möglichkeit, dieses Problem zu beheben? der Installationsvorgang scheint sich nicht bewusst zu sein, dass ich versucht habe, den Umsetzungsmechanismus zu verwenden, auch wenn das Paket verlagerbar ist (soweit ich das sehe)
  2. fehlt mir etwas bei der installation? Ist es wirklich möglich, Java 6 und Java 7 auf derselben Linux-Maschine zu haben? Wie? Was mache ich falsch?
  3. 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 zur Formatierung und irgendetwas). PS2: Ich habe versucht, den Tag sun-java7-jdk zu dieser Frage hinzuzufügen, aber ich habe nicht genug Reputation dafür erstellt werden?

8

5 Antworten auf die Frage

14
Cojones

Dies ist der einfachere Weg, wenn Sie diesen Fehler erhalten:

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

Verwenden Sie das --forceFlag, um mehrere Versionen zu installieren.

Also zum Beispiel:

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

Ich hatte ähnliche Probleme, Oracle java und OpenJDK nebeneinander auf Fedora 16 zu installieren. Ich folgte der Anleitung zu If not True, dann False und es funktionierte perfekt.

Könnten Sie den Artikel hier zusammenfassen? Wir bevorzugen, dass Sie hier nicht nur Artikel verlinken. Simon Sheehan vor 12 Jahren 5
2
Dejan

jdk-7u2-linux-x64.rpmist neuer als jdk-6u30-linux-amd64.rpmund das RPM-Paketverwaltungstool ist intelligent genug, um es mit der neueren Version zu überschreiben.

Sie können sun java 6 und sun java 7 nebeneinander installieren, indem Sie die Java-Tarballs von Oracle herunterladen und extrahieren /opt

1
Kevin Cross

Ich denke, Dejan hat Recht, die Java-Tarballs anstelle des RPM zu installieren. Wenn Sie richten Sie JAVA_HOMEund PATHrichtig die meisten Anwendungen wird nicht die zusätzliche Installation erforderlich ist, dass die RPM - Installation Sie gibt (siehe diese Seite für Details, was jexec tatsächlich tut ).

Ein Problem könnte sein, dass einige Versionen des JDK kein Tarball ( *.tar.gz) zur Verfügung stellen, sondern lediglich ein *-rpm.binund ein *.bin. In diesem Fall handelt es sich bei der *.binDatei eigentlich nur um ein selbstentpackendes Archiv, das beim Ausführen das übliche JAVA_HOME-Verzeichnis ergibt.

0
Johny

So installieren Sie die Java-Laufzeitumgebung unter Fedora, Oracle Linux, Red Hat Enterprise Linux usw.

# yum install java-1.7.0-openjdk 

Ein Paket für die Entwicklung von Programmen unter Verwendung von Java unter Fedora, Oracle Linux, Red Hat Enterprise Linux usw.

# yum install java-1.7.0-openjdk-devel 

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