cài đặt sun java 6 và sun java 7 song song trên linux (fedora 16) bằng vòng / phút


8

Đây là những gì tôi muốn đạt được, nhưng tôi thất bại (Tôi là người mới chơi Linux).

Tôi có một hộp Fedora 16 (64 bit) và muốn cài đặt nhiều phiên bản oracle java (java 6 và java 7 vào lúc này). Tôi đang cố gắng cài đặt java bằng phần mềm vòng / phút và tôi muốn cài đặt cả hai /opt.

Tôi đã tải xuống các gói cần thiết từ trang web của Oracle:

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

và giải nén gói vòng / phút từ bên trong .bintệp đang chạy

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

có được tình huống sau:

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

Sau đó tôi nhìn vào trong jdk-6u30-linux-amd64.rpm :

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

và thu được rằng java 6 sẽ cài đặt các tệp của nó vào:

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

Theo cách tương tự java 7 sẽ cài đặt vào:

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

Bởi vì tôi muốn cài đặt vào /optnên tôi đã cố gắng cài đặt bằng cách sử dụng dịch chuyển vòng / phút . Cả hai gói dường như có thể di chuyển vòng / phút, trên thực tế:

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

cho kết quả

Relocations : /usr/java

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

cho kết quả

Relocations : /usr/java

Cố gắng 1 (cài đặt java 6 và sau đó java 7)

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

Điều này chạy gần như trơn tru bởi vì vòng / phút nói

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

rpm -q jdk

nói

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

sau đó

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

thất bại nặng nề nói:

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*

Cố gắng 2 (cài đặt java 7 và sau đó java 6)

chưa cài đặt java 6 tôi sẽ xóa nó trước:

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

cho:

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

sau đó hãy thử cài đặt java 7

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

đưa ra lỗi thông thường:

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

và bây giờ java 6

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

không nói hai điều:

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*

Câu hỏi của tôi là:

  1. vấn đề tạo liên kết tượng trưng: có cách nào để khắc phục nó không? quá trình cài đặt dường như không nhận thức được rằng tôi đã cố gắng sử dụng cơ chế di chuyển, ngay cả khi gói có thể di chuyển được (theo như tôi thấy)
  2. Tôi có thiếu một cái gì đó trong quá trình cài đặt? Có thực sự có cả java 6 và java 7 trên cùng một máy Linux không? Làm sao? Tôi đang làm gì sai?
  3. Có cách nào khác để đạt được mục tiêu của tôi không?

PS: đây là câu hỏi đầu tiên của tôi ở đây. Tôi xin lỗi trước nếu có gì đó không đúng (từ tiếng Anh của tôi đến định dạng và bất cứ điều gì) PS2: Tôi đã cố gắng thêm thẻ sun-java7-jdk vào câu hỏi này nhưng tôi không đủ danh tiếng để làm điều đó ... nên thẻ này được tạo ra?

Câu trả lời:


3

Tôi gặp vấn đề tương tự khi khiến java java và OpenJDK tồn tại song song trên Fedora 16. Tôi đã làm theo hướng dẫn trên If not True rồi false và nó hoạt động hoàn hảo.


5
Bạn có thể tóm tắt bài viết ở đây? Chúng tôi muốn bạn không chỉ liên kết bài viết ở đây.
Simon Sheehan

14

Đây là cách đơn giản hơn, khi bạn gặp lỗi này:

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

Sử dụng --forcecờ để cài đặt nhiều phiên bản.

Ví dụ:

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

2

jdk-7u2-linux-x64.rpmmới hơn jdk-6u30-linux-amd64.rpmvà công cụ quản lý gói RPM đủ thông minh để ghi đè lên nó với bản phát hành mới hơn.

Cách dễ nhất để cài đặt sun java 6 và sun java 7 song song là tải xuống các tarball Java từ Oracle và giải nén chúng vào /opt


1

Tôi nghĩ Dejan là chính xác về việc cài đặt tarball Java thay vì RPM. Nếu bạn thiết lập JAVA_HOMEPATHsử dụng chính xác, hầu hết các sử dụng sẽ không cần thiết lập bổ sung mà cài đặt RPM mang lại cho bạn (xem trang này để biết chi tiết về những gì jexec thực sự làm ).

Một vấn đề có thể là một số phiên bản của JDK không *.tar.gzcung cấp tarball ( ) mà thay vào đó chỉ cung cấp cho bạn một *-rpm.binvà a *.bin. Trong trường hợp này, *.bintệp thực sự chỉ là một kho lưu trữ tự giải nén dẫn đến thư mục JAVA_HOME thông thường khi bạn chạy nó.


0

Để cài đặt Môi trường chạy thi hành Java trên Fedora, Oracle Linux, Red Hat Enterprise Linux, v.v.

# yum install java-1.7.0-openjdk

Để mở gói để phát triển các chương trình sử dụng Java trên Fedora, Oracle Linux, Red Hat Enterprise Linux, v.v.

# yum install java-1.7.0-openjdk-devel

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.