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


8

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 .binlaufenden 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 /optich 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:

  1. 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).
  2. 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?
  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 ü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?

Antworten:


3

Ich hatte ähnliche Probleme damit, dass Oracle Java und OpenJDK auf Fedora 16 nebeneinander existieren. Ich folgte der Anleitung zu Wenn nicht wahr, dann falsch und es funktionierte perfekt.


5
Können Sie den Artikel hier zusammenfassen? Wir bevorzugen, dass Sie hier nicht nur Artikel verlinken.
Simon Sheehan

14

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

2

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.

Der einfachste Weg, Sun Java 6 und Sun Java 7 nebeneinander zu installieren, besteht darin, die Java-Tarballs von Oracle herunterzuladen und in Oracle zu extrahieren /opt


1

Ich denke, Dejan hat Recht, wenn es darum geht, die Java-Tarballs anstelle des RPM zu installieren. Wenn Sie Ihre JAVA_HOMEund die PATHmeisten Anwendungen korrekt eingerichtet haben, benötigen Sie nicht das zusätzliche Setup, das Ihnen die RPM-Installation bietet ( Einzelheiten zu den tatsächlichen Funktionen von jexec finden Sie auf dieser Seite ).

Ein Problem könnte sein, dass einige Versionen des JDK kein tarball ( *.tar.gz) zur Verfügung stellen, sondern nur ein *-rpm.binund ein geben *.bin. In diesem Fall ist die *.binDatei eigentlich nur ein selbstextrahierendes Archiv, das beim Ausführen zum üblichen JAVA_HOME-Verzeichnis führt.


0

So installieren Sie Java Runtime Environment unter Fedora, Oracle Linux, Red Hat Enterprise Linux usw.

# yum install java-1.7.0-openjdk

Installation des Pakets zur Entwicklung von Programmen mit 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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.