Inilah yang ingin saya capai, tetapi saya gagal (saya seorang pemula di Linux).
Saya memiliki kotak Fedora 16 (64 bit) dan ingin menginstal beberapa versi java oracle (java 6 dan java 7 untuk saat ini). Saya mencoba menginstal java menggunakan perangkat lunak rpm dan saya ingin menginstal keduanya di bawah /opt
.
Saya mengunduh paket-paket yang diperlukan dari situs Oracle:
jdk-6u30-linux-x64-rpm.bin
jdk-7u2-linux-x64.rpm
dan mengekstrak paket rpm dari dalam .bin
file yang sedang berjalan
./jdk-6u30-linux-x64-rpm.bin -x
mendapatkan situasi berikut:
jdk-6u30-linux-amd64.rpm
jdk-7u2-linux-x64.rpm
Kemudian saya melihat ke dalam jdk-6u30-linux-amd64.rpm
dengan:
rpm -qpl ~/Downloads/jdk-7u2-linux-x64.rpm
dan diperoleh bahwa java 6 akan menginstal file-nya ke:
/etc (some files)
/usr/java/jdk1.6.0\_30 (the majority of the files)
Dengan cara yang sama java 7 akan menginstal ke:
/etc
/usr/java/jdk1.7.0\_02
Karena saya ingin menginstal ke /opt
saya mencoba menginstal menggunakan relokasi rpm . Kedua paket tampaknya relocatable-rpm, pada kenyataannya:
rpm -qpi ~/Downloads/jdk-6u30-linux-amd64.rpm | grep -i reloc
memberi hasilnya
Relocations : /usr/java
dan
rpm -qpi ~/Downloads/jdk-7u2-linux-x64.rpm | grep -i reloc
memberi hasilnya
Relocations : /usr/java
Percobaan 1 (instal java 6 dan kemudian java 7)
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm
ini berjalan hampir lancar karena kata rpm
ln: failed to create symbolic link '/usr/java/jdk1.6.0\_30': No such file or directory`
rpm -q jdk
kata
jdk-1.6.0\_30-fcs.x86\_64_ ... OK!
kemudian
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm
gagal mengatakan:
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*
Percobaan 2 (instal java 7 dan kemudian java 6)
setelah menginstal java 6 saya akan menghapusnya terlebih dahulu:
sudo rpm -e jdk*
sudo rpm -q jdk*
memberi:
package jdk is not installed* <- OK, uninstalled!
maka mari kita coba instal java 7
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-7u2-linux-x64.rpm*
memberikan kesalahan yang biasa:
ln: failed to create symbolic link '/usr/java/jdk1.7.0_02': No such file or directory`*
dan sekarang java 6
sudo rpm -i --relocate /usr/java=/opt/java ~/Downloads/jdk-6u30-linux-amd64.rpm*
gagal mengatakan dua hal:
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*
dan
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*
Pertanyaan saya adalah:
- masalah pembuatan tautan simbolik: apakah ada cara untuk memperbaikinya? proses instalasi tampaknya tidak menyadari bahwa saya mencoba menggunakan mekanisme relokasi, bahkan jika paket tersebut dapat dipindahkan (sejauh yang saya lihat)
- Apakah saya kehilangan sesuatu dalam proses instalasi? Apakah benar-benar memungkinkan untuk memiliki java 6 dan java 7 di mesin Linux yang sama? Bagaimana? Apa yang saya lakukan salah?
- Apakah ada cara lain untuk mencapai tujuan saya?
PS: ini pertanyaan pertamaku di sini. Saya minta maaf sebelumnya jika ada sesuatu yang salah (dari bahasa Inggris saya ke format dan apa pun) PS2: Saya mencoba menambahkan tag sun-java7-jdk untuk pertanyaan ini, tetapi saya tidak memiliki reputasi yang cukup untuk melakukannya ... haruskah tag ini dibuat?
Ini adalah cara yang lebih sederhana, ketika Anda mendapatkan kesalahan ini:
Gunakan
--force
bendera untuk menginstal beberapa versi.Jadi misalnya:
sumber
jdk-7u2-linux-x64.rpm
lebih baru daripadajdk-6u30-linux-amd64.rpm
dan alat manajemen paket RPM cukup pintar untuk menimpanya dengan rilis yang lebih baru.Cara termudah untuk menginstal sun java 6 dan sun java 7 secara berdampingan adalah dengan mengunduh tarbal Java dari Oracle dan mengekstraknya menjadi
/opt
sumber
Saya pikir Dejan benar tentang menginstal tarbal Java, bukan RPM. Jika Anda mengatur
JAVA_HOME
danPATH
menggunakan sebagian besar dengan benar tidak perlu pengaturan tambahan yang diberikan oleh instalasi RPM (lihat halaman ini untuk detail tentang apa sebenarnya yang dilakukan jexec ).Satu masalah mungkin bahwa beberapa versi JDK tidak membuat tarball (
*.tar.gz
) tersedia tetapi hanya memberi Anda*-rpm.bin
dan a*.bin
. Dalam hal ini*.bin
file tersebut sebenarnya hanya arsip pengekstrak diri yang menghasilkan direktori JAVA_HOME yang biasa ketika Anda menjalankannya.sumber
Untuk menginstal Java Runtime Environment di Fedora, Oracle Linux, Red Hat Enterprise Linux, dll.
Untuk menginstal paket untuk mengembangkan program menggunakan Java pada Fedora, Oracle Linux, Red Hat Enterprise Linux, dll.
dari http://namhuy.net/1195/how-to-install-oracle-java-jdk-7.html
sumber