이것이 내가 달성하고 싶은 것이지만 실패하고 있습니다 (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*
내 질문은 :
- 심볼릭 링크 생성 문제 : 문제를 해결할 방법이 있습니까? 설치 프로세스는 패키지를 재배치 할 수있는 경우에도 재배치 메커니즘을 사용하려고 시도했다는 것을 인식하지 못하는 것 같습니다.
- 설치 과정에서 뭔가 빠졌습니까? 동일한 Linux 시스템에서 java 6과 java 7을 모두 가질 수 있습니까? 어떻게? 내가 무엇을 잘못하고 있지?
- 목표를 달성 할 수있는 다른 방법이 있습니까?
추신 : 이것은 내 첫 번째 질문입니다. 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_HOME
와 PATH
RPM을 설치 당신을 준다 올바르게 대부분의 용도는 추가 설정이 필요하지 않습니다 (참조 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