これは私が達成したいことですが、私は失敗しています(私はLinuxの初心者です)。
Fedora 16ボックス(64ビット)を使用しており、Oracleの複数のバージョンをインストールしたいと思いますJava(現時点ではJava 6およびJava 7)。) Java rpmソフトウェアを使用してインストールしようとしています。両方を/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
/opt
にインストールしたいので、rpm relocationを使用してインストールしようとしました。どちらのパッケージも実際には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
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*
まだインストール済み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*
私の質問は:
PS:これが私の最初の質問です。何か問題がある場合は事前に謝罪します(私の英語から書式設定など)PS2:この質問にタグSun-Java7-jdkを追加しようとしましたが、十分な評判がありませんそれ...このタグを作成する必要がありますか?
Oracle JavaとOpenJDKがFedora 16に並んで存在するようにすることで同様の問題がありました。 真でない場合は偽 のガイドに従って、完全に機能しました。
これは、このエラーが発生した場合のより簡単な方法です。
package jdk.... (which is newer than jdk...) is already installed
使用 --force
フラグを使用して、複数のバージョンをインストールします。
だから例えば:
Sudo rpm -ivh --force jdk-6u35-linux-AMD64.rpm
jdk-7u2-linux-x64.rpm
はjdk-6u30-linux-AMD64.rpm
よりも新しく、RPMパッケージ管理ツールは新しいリリースで上書きできるほどスマートです。
Sun Java 6とSun Java 7を並べてインストールする最も簡単な方法は、Java tarballsをダウンロードすることです。 Oracleからそれらを/opt
に抽出します
RPMの代わりにJava tarballsをインストールすることについて、Dejanは正しいと思います。Java_HOME
およびPATH
正しく使用する場合、ほとんどの場合、RPMインストールで提供される追加の設定は必要ありません(jexecが実際に行うことの詳細については、 このページを参照してください )。
1つの問題は、JDKの一部のバージョンがtarball(*.tar.gz
)利用可能ですが、代わりに*-rpm.bin
と*.bin
。この場合、*.bin
ファイルは実際には、自己解凍アーカイブであり、実行すると通常のJava_HOMEディレクトリになります。
Javaランタイム環境をFedora、Oracle Linux、Red Hat Enterprise Linuxなどにインストールするには、.
# yum install Java-1.7.0-openjdk
Javaを使用してプログラムを開発するためにパッケージをインストールするには.
# yum install Java-1.7.0-openjdk-devel
から http://namhuy.net/1195/how-to-install-Oracle-Java-jdk-7.html