installez côte à côte sun java 6 et sun java 7 sur linux (fedora 16) à l'aide de rpm

8

C'est ce que j'aimerais réaliser, mais j'échoue (je suis un débutant sous Linux).

J'ai une boîte Fedora 16 (64 bits) et je voudrais installer plusieurs versions d'Oracle Java (Java 6 et Java 7 pour le moment). J'essaie d'installer java à l'aide du logiciel rpm et je voudrais installer les deux sous /opt.

J'ai téléchargé les packages requis depuis le site Oracle:

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

et extrait le package rpm de l'intérieur du .binfichier en cours d'exécution

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

obtenir la situation suivante:

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

Puis j'ai regardé à l'intérieur jdk-6u30-linux-amd64.rpm avec:

rpm -qpl ~/Downloads/jdk-7u2-linux-x64.rpm

et obtenu que java 6 installe ses fichiers dans:

/etc                   (some files)
/usr/java/jdk1.6.0\_30 (the majority of the files)

De la même manière, java 7 s'installera dans:

/etc
/usr/java/jdk1.7.0\_02

Parce que je veux installer dans, /optj'ai essayé d'installer en utilisant la relocalisation rpm . Les deux packages semblent être déplaçables par rpm, en fait:

rpm -qpi ~/Downloads/jdk-6u30-linux-amd64.rpm | grep -i reloc

donne comme résultat

Relocations : /usr/java

et

rpm -qpi ~/Downloads/jdk-7u2-linux-x64.rpm | grep -i reloc

donne comme résultat

Relocations : /usr/java

Tentative 1 (installez java 6 puis java 7)

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

cela fonctionne presque sans à-coups parce que le régime indique

ln: failed to create symbolic link '/usr/java/jdk1.6.0\_30': No such file or directory`

rpm -q jdk

dit

jdk-1.6.0\_30-fcs.x86\_64_ ... OK!

puis

sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm

échoue énormément en disant:

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*

Tentative 2 (installez java 7 puis java 6)

après avoir installé java 6, je le supprimerai d'abord:

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

donne:

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

alors essayons d'installer java 7

sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm*

donne l'erreur habituelle:

ln: failed to create symbolic link '/usr/java/jdk1.7.0_02': No such file or directory`*

et maintenant java 6

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

ne dit pas deux choses:

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*

et

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*

Mes questions sont:

  1. problème de création de liens symboliques: existe-t-il un moyen de le résoudre? le processus d'installation ne semble pas savoir que j'ai essayé d'utiliser le mécanisme de relocalisation, même si le package est relocalisable (pour autant que je vois)
  2. est-ce que je manque quelque chose dans le processus d'installation? Est-il vraiment possible d'avoir à la fois java 6 et java 7 sur la même machine Linux? Comment? Qu'est-ce que je fais mal?
  3. Existe-t-il un autre moyen d'atteindre mon objectif?

PS: c'est ma première question ici. Je m'excuse à l'avance si quelque chose ne va pas (de mon anglais au formatage et n'importe quoi) PS2: J'ai essayé d'ajouter le tag sun-java7-jdk à cette question mais je n'ai pas assez de réputation pour le faire ... si ce tag Être créé?

alfo_1205
la source

Réponses:

3

J'ai eu des problèmes similaires pour faire en sorte qu'Oracle java et OpenJDK coexistent sur Fedora 16. J'ai suivi le guide Si ce n'est pas vrai puis faux et cela a parfaitement fonctionné.

bfj7
la source
5
Pourriez-vous résumer l'article ici? Nous préférons que vous ne liez pas simplement des articles ici.
Simon Sheehan
14

C'est le moyen le plus simple, lorsque vous obtenez cette erreur:

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

Utilisez l' --forceindicateur pour installer plusieurs versions.

Ainsi, par exemple:

sudo rpm -ivh --force jdk-6u35-linux-amd64.rpm
Cojones
la source
2

jdk-7u2-linux-x64.rpmest plus récent que jdk-6u30-linux-amd64.rpmet l'outil de gestion des packages RPM est suffisamment intelligent pour le remplacer par la nouvelle version.

La façon la plus simple d'installer côte à côte Sun Java 6 et Sun Java 7 est de télécharger les tarballs Java d'Oracle et de les extraire dans /opt

Dejan
la source
1

Je pense que Dejan a raison d'installer les tarballs Java au lieu du RPM. Si vous configurez votre JAVA_HOMEet PATHcorrectement la plupart des utilisations n'auront pas besoin de la configuration supplémentaire que l'installation RPM vous donne (voir cette page pour plus de détails sur ce que jexec fait réellement ).

Un problème pourrait être que certaines versions du JDK ne rendent pas tarball ( *.tar.gz) disponible mais vous donnent simplement un *-rpm.binet un *.bin. Dans ce cas, le *.binfichier n'est en fait qu'une archive auto-extractible qui se traduit par le répertoire JAVA_HOME habituel lorsque vous l'exécutez.

Kevin Cross
la source
0

Pour installer Java Runtime Environment sur Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.

# yum install java-1.7.0-openjdk

Pour installer le package de développement de programmes utilisant Java sur Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.

# yum install java-1.7.0-openjdk-devel

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

Johny
la source