นี่คือสิ่งที่ฉันต้องการจะประสบความสำเร็จ แต่ฉันล้มเหลว (ฉันเป็นมือใหม่ใน Linux)
ฉันมีกล่อง Fedora 16 (64 บิต) และต้องการติดตั้ง oracle java หลายเวอร์ชัน (java 6 และ java 7 ในขณะนี้) /opt
ฉันพยายามที่จะติดตั้งจาวาโดยใช้ซอฟต์แวร์รอบต่อนาทีและผมอยากจะติดตั้งทั้งสองของพวกเขาภายใต้
ฉันดาวน์โหลดแพ็คเกจที่ต้องการจากไซต์ Oracle:
jdk-6u30-linux-x64-rpm.bin
jdk-7u2-linux-x64.rpm
และแตกแพ็กเกจ rpm จากภายใน.bin
ไฟล์ที่รัน
./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
เพราะผมต้องการที่จะติดตั้งลงใน/opt
ฉันพยายามที่จะติดตั้งโดยใช้การย้ายรอบต่อนาที แพ็กเกจทั้งสองดูเหมือนว่าจะสามารถเปลี่ยนตำแหน่งได้รอบต่อนาทีจริง ๆ แล้ว:
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`*
และตอนนี้ java 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*
คำถามของฉันคือ:
- ปัญหาการสร้างลิงค์สัญลักษณ์: มีวิธีแก้ไขไหม กระบวนการติดตั้งดูเหมือนจะไม่ทราบว่าฉันพยายามใช้กลไกการย้ายแม้ว่าแพคเกจจะสามารถเปลี่ยนตำแหน่งได้ (เท่าที่ฉันเห็น)
- ฉันขาดอะไรบางอย่างในกระบวนการติดตั้ง เป็นไปได้หรือไม่ที่จะมีทั้ง java 6 และ java 7 บนเครื่องลีนุกซ์เดียวกัน? อย่างไร? ผมทำอะไรผิดหรือเปล่า?
- มีวิธีอื่นในการบรรลุเป้าหมายของฉันหรือไม่
PS: นี่เป็นคำถามแรกของฉันที่นี่ ฉันขอโทษล่วงหน้าหากมีสิ่งผิดปกติ (จากภาษาอังกฤษเป็นรูปแบบและอะไรก็ตาม) PS2: ฉันพยายามเพิ่มแท็กsun-java7-jdkให้กับคำถามนี้ แต่ฉันไม่มีชื่อเสียงพอที่จะทำ ... แท็กนี้ควรทำหรือไม่ ถูกสร้างขึ้น?