instal sun java 6 dan sun java 7 berdampingan di linux (fedora 16) menggunakan rpm

8

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 .binfile 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 /optsaya 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:

  1. 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)
  2. 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?
  3. 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?

alfo_1205
sumber

Jawaban:

3

Saya memiliki masalah yang sama untuk mendapatkan Oracle java dan OpenJDK untuk hidup berdampingan di Fedora 16. Saya mengikuti panduan pada If not True maka False dan itu bekerja dengan sempurna.

bfj7
sumber
5
Bisakah Anda meringkas artikel di sini? Kami lebih suka Anda tidak hanya menautkan artikel di sini.
Simon Sheehan
14

Ini adalah cara yang lebih sederhana, ketika Anda mendapatkan kesalahan ini:

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

Gunakan --forcebendera untuk menginstal beberapa versi.

Jadi misalnya:

sudo rpm -ivh --force jdk-6u35-linux-amd64.rpm
Cojones
sumber
2

jdk-7u2-linux-x64.rpmlebih baru daripada jdk-6u30-linux-amd64.rpmdan 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

Dejan
sumber
1

Saya pikir Dejan benar tentang menginstal tarbal Java, bukan RPM. Jika Anda mengatur JAVA_HOMEdan PATHmenggunakan 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.bindan a *.bin. Dalam hal ini *.binfile tersebut sebenarnya hanya arsip pengekstrak diri yang menghasilkan direktori JAVA_HOME yang biasa ketika Anda menjalankannya.

Kevin Cross
sumber
0

Untuk menginstal Java Runtime Environment di Fedora, Oracle Linux, Red Hat Enterprise Linux, dll.

# yum install java-1.7.0-openjdk

Untuk menginstal paket untuk mengembangkan program menggunakan Java pada Fedora, Oracle Linux, Red Hat Enterprise Linux, dll.

# yum install java-1.7.0-openjdk-devel

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

Johny
sumber