rpmを使用して、Sun Java 6とSun Java 7をLinux(Fedora 16)にサイドバイサイドでインストールします。


8

これは私が達成したいことですが、私は失敗しています(私はLinuxの初心者です)。

Fedora 16ボックス(64ビット)があり、複数のバージョンのoracle java(現時点ではjava 6およびjava 7)をインストールしたいと考えています。rpmソフトウェアを使用してjavaをインストールしようとしていますが、両方にインストールしたいと思い/optます。

必要なパッケージをOracleサイトからダウンロードしました。

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

.bin実行中のファイル内からrpmパッケージを抽出しました

./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

にインストールしたいので、rpm relocation/optを使用してインストールしようとしました。どちらのパッケージも、実際にはrpmで再配置可能であるようです。

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*

2つのことを言って失敗します:

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*

私の質問は:

  1. シンボリックリンク作成の問題:それを修正する方法はありますか?インストールプロセスは、パッケージが再配置可能であっても(私が見る限り)、再配置メカニズムを使用しようとしたことを認識していないようです
  2. インストールプロセスで何か不足していますか?同じLinuxマシンでJava 6とJava 7の両方を使用することは本当に可能ですか?どうやって?何が悪いのですか?
  3. 私の目標を達成する別の方法はありますか?

PS:これが私の最初の質問です。何か問題がある場合は事前に謝罪します(私の英語から書式設定まで)PS2:この質問にsun-java7-jdkタグを追加しようとしましたが、このタグを実行するのに十分な評判がありません...作成されますか?

回答:


3

Oracle javaとOpenJDKをFedora 16に並べて存在させるのと同様の問題がありました。「If not True」、「False」のガイドに従って、完全に機能しました。


5
ここで記事を要約してもらえますか?ここに記事をリンクしないでください。
Simon Sheehan

14

これは、このエラーが発生した場合のより簡単な方法です。

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

--forceフラグを使用して複数のバージョンをインストールします。

だから例えば:

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

2

jdk-7u2-linux-x64.rpmより新しいjdk-6u30-linux-amd64.rpmRPMパッケージ管理ツールは、新しいリリースで上書きできるほどスマートです。

Sun Java 6とSun Java 7を並べてインストールする最も簡単な方法は、OracleからJava tarballをダウンロードして、そこに抽出することです。 /opt


1

RPMの代わりにJava tarballをインストールすることについては、Dejanが正しいと思います。あなたが正しく設定すればJAVA_HOMEPATHほとんどの使用はRPMインストールが与える追加の設定を必要としません(jexecが実際に行うことの詳細についてはこのページを参照してください)。

問題の1つとして、JDKの一部のバージョンではtarball(*.tar.gz)が利用できず、代わりにa *-rpm.binとが提供される場合があります*.bin。この場合、*.binファイルは実際には自己解凍アーカイブであり、実行すると通常のJAVA_HOMEディレクトリになります。


0

Fedora、Oracle Linux、Red Hat Enterprise LinuxなどにJavaランタイム環境をインストールするには

# yum install java-1.7.0-openjdk

Fedora、Oracle Linux、Red Hat Enterprise LinuxなどでJavaを使用してプログラムを開発するためのパッケージをインストールします。

# yum install java-1.7.0-openjdk-devel

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.