Đâ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 .bin
tệ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 /opt
nê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
và
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*
và
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à:
- 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)
- 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?
- 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?