rpm을 사용하여 Linux (fedora 16)에 sun java 6 및 sun java 7을 나란히 설치하십시오. . 두 패키지

이것이 내가 달성하고 싶은 것이지만 실패하고 있습니다 (Linux의 초보자입니다).

Fedora 16 상자 (64 비트)가 있으며 여러 버전의 oracle java (현재 Java 6 및 java 7)를 설치하고 싶습니다. rpm 소프트웨어를 사용하여 java를 설치하려고하는데 둘 다 아래에 설치하고 싶습니다 /opt.

Oracle 사이트에서 필요한 패키지를 다운로드했습니다.

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

.bin실행중인 파일 내부에서 rpm 패키지를 추출했습니다.

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

다음 상황을 얻는다 :

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

그런 다음 내부 jdk-6u30-linux-amd64.rpm 를 살펴 보았습니다 .

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

Java 6이 파일을 다음 위치에 설치한다는 것을 알았습니다.

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

비슷한 방법으로 java 7은 다음에 설치됩니다.

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

에 설치하고 싶기 때문에 rpm relocation을/opt 사용하여 설치하려고했습니다 . 두 패키지 모두 rpm-relocatable 가능한 것 같습니다.

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

결과적으로 제공

Relocations : /usr/java

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

결과적으로 제공

Relocations : /usr/java

시도 1 (java 6을 설치 한 다음 java 7을 설치하십시오)

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

rpm이 말하기 때문에 이것은 거의 매끄럽게 실행됩니다.

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

rpm -q jdk

말한다

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

그때

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

엄청나게 말하지 않는다 :

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*

시도 2 (java 7을 설치 한 다음 java 6을 설치하십시오)

Java 6을 아직 설치 한 후 먼저 제거하겠습니다.

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

제공합니다 :

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

그런 다음 Java 7을 설치해 봅시다.

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

일반적인 오류가 발생합니다.

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

그리고 지금 자바 6

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

두 가지 말을하지 못한다 :

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*

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*

내 질문은 :

  1. 심볼릭 링크 생성 문제 : 문제를 해결할 방법이 있습니까? 설치 프로세스는 패키지를 재배치 할 수있는 경우에도 재배치 메커니즘을 사용하려고 시도했다는 것을 인식하지 못하는 것 같습니다.
  2. 설치 과정에서 뭔가 빠졌습니까? 동일한 Linux 시스템에서 java 6과 java 7을 모두 가질 수 있습니까? 어떻게? 내가 무엇을 잘못하고 있지?
  3. 목표를 달성 할 수있는 다른 방법이 있습니까?

추신 : 이것은 내 첫 번째 질문입니다. PS2 : sun-java7-jdk 태그 를이 질문 에 추가하려고 시도했지만 평판이 충분하지 않습니다 …이 태그가 있어야합니다. 창조?



답변

Fedora 16에서 Oracle java와 OpenJDK를 나란히 배치하는 데 비슷한 문제가 발생 했습니다. True가 아니라면 False 의 가이드를 따라 완벽하게 작동했습니다.


답변

이 오류가 발생하면 더 간단한 방법입니다.

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

--force플래그를 사용하여 여러 버전을 설치 하십시오 .

예를 들어 :

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


답변

jdk-7u2-linux-x64.rpm보다 최신 jdk-6u30-linux-amd64.rpm와 RPM 패키지 관리 도구는 새로운 버전으로 덮어 스마트 충분하다.

Sun Java 6 및 Sun Java 7을 나란히 설치하는 가장 쉬운 방법은 Oracle에서 Java 타르볼을 다운로드하여 추출하는 것입니다 /opt


답변

Dejan이 RPM 대신 Java tarball을 설치하는 것이 맞다고 생각합니다. 당신이 설정 한 경우 JAVA_HOMEPATHRPM을 설치 당신을 준다 올바르게 대부분의 용도는 추가 설정이 필요하지 않습니다 (참조 jexec 실제로 수행하는 작업에 대한 자세한 내용은이 페이지를 ).

한 가지 문제는 일부 JDK 버전에서 tarball ( *.tar.gz)을 사용할 수 없지만 대신 a *-rpm.bin와 a를 제공 한다는 것 *.bin입니다. 이 경우 *.bin파일은 실제로 자동 압축 풀기 아카이브이므로 실행할 때 일반적인 JAVA_HOME 디렉토리가됩니다.


답변

Fedora, Oracle Linux, Red Hat Enterprise Linux 등에 Java Runtime Environment를 설치하려면

# yum install java-1.7.0-openjdk

Fedora, Oracle Linux, Red Hat Enterprise Linux 등에서 Java를 사용하여 프로그램을 개발하는 데 필요한 전체 패키지

# yum install java-1.7.0-openjdk-devel

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


답변