无法使用yum或rpm在Fedora上安装jdk

时间:2013-04-26 23:25:46

标签: java centos fedora yum openjdk

帮助!我无法弄清楚如何安装jdk!

[/usr/lib/jvm]$ su -c "yum install java-1.7.0-openjdk-devel"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.7.0-openjdk-devel available.
Error: Nothing to do

[/usr/lib/jvm]$ su -c "yum install java-1.7.0-openjdk"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.7.0-openjdk available.
Error: Nothing to do

[/usr/lib/jvm]$ su -c "yum install java-1.6.0-openjdk-devel"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.6.0-openjdk-devel available.
Error: Nothing to do

[/usr/lib/jvm]$ su -c "yum install java-1.6.0-openjdk"
Loaded plugins: langpacks, presto, refresh-packagekit
No package java-1.6.0-openjdk available.
Error: Nothing to do

这里我手动下载了一些rpm,最后一个来自oracle的网站:

[~]$ rpm -ivh java-1.7.0-openjdk-devel-1.7.0.19-2.3.9.3.fc20.x86_64.rpm 
error: Failed dependencies:
    java-1.7.0-openjdk = 1:1.7.0.19-2.3.9.3.fc20 is needed by java-1.7.0-openjdk-devel-1:1.7.0.19-2.3.9.3.fc20.x86_64


[~]$ sudo rpm -ivh java-1.7.0-openjdk-1.7.0.19-2.3.9.3.fc20.x86_64.rpm 
Preparing...                          ################################# [100%]
    file /usr/lib/jvm-exports/jre-1.7.0-openjdk.x86_64 from install of java-1.7.0-openjdk-1:1.7.0.19-2.3.9.3.fc20.x86_64 conflicts with file from package java-1.7.0-openjdk-1:1.7.0.9-2.3.7.0.fc18.x86_64
    file /usr/lib/jvm/jre-1.7.0-openjdk.x86_64 from install of java-1.7.0-openjdk-1:1.7.0.19-2.3.9.3.fc20.x86_64 conflicts with file from package java-1.7.0-openjdk-1:1.7.0.9-2.3.7.0.fc18.x86_64


[~]$ sudo rpm -ivh jdk-7u21-linux-x64.rpm 
Preparing...                          ################################# [100%]
    file /etc/init.d/jexec from install of jdk-2000:1.7.0_21-fcs.x86_64 conflicts with file from package jdk-2000:1.6.0_38-fcs.x86_64

调试

以下是一些调试信息:

[/usr/lib/jvm]$ yum search jdk
Loaded plugins: langpacks, presto, refresh-packagekit
=========================================================== N/S Matched: jdk ============================================================
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
jdk.x86_64 : Java(TM) Platform Standard Edition Development Kit
ldapjdk.noarch : The Mozilla LDAP Java SDK
Name and summary matches only, use "search all" for everything.

[/usr/lib/jvm]$ yum list java*
Loaded plugins: langpacks, presto, refresh-packagekit
Installed Packages
java-1.5.0-gcj.x86_64   

[/usr/lib/jvm]$ cat /etc/fedora-release 
Fedora release 18 (Spherical Cow)

要求

必须拥有“ jni.h ”,“ libjava.so ”,“ libhpi.so “,” lipverify.so “和” libjvm.so “包括在内。

到目前为止,我发现这些没有我需要的东西:

  • 不受欢迎的版本(当然):
    • jdk1.7.0_06< - 我很惊讶这个,但它没有libjvm也没有libhpi
    • java-1.7.0
    • java-openjdk
    • java的1.7.0-的openjdk-1.7.0.9.x86_64
    • java的1.5.0-GCJ-4.4
    • java的1.6.0-的openjdk
    • java的1.7.0-openjdk.x86_64
    • JRE-1.5.0-GCJ
    • JRE-1.7.0-openjdk.x86_64
    • jre-openjdk
    • JRE-1.7.0
    • jre-7u11-linux-x64.rpm java-1.5.0-gcj-1.5.0.0
    • JRE-1.5.0
    • jre1.7.0_11
    • JRE-GCJ

这些确实:

  • 所需版本(我知道,可能会有更多):
    • jdk1.6.0_34 86
    • jdk1.5.0_22 86
    • 的java -6-的openjdk

有人可以帮我安装jdk1.6或java-6-openjdk吗?

5 个答案:

答案 0 :(得分:4)

这里的问题是,当你已经拥有Oracle JDK 6时,你不能使用Oracle rpm安装JDK 7,因为它试图安装已经安装并且已经安装JDK 6的/etc/init.d/jexec脚本。

我建议坚持使用tarball或自解压*.bin并使用JAVA_HOME,如果你打算使用Oracle发行版,因为它没有这个问题,你可能不需要jexec

答案 1 :(得分:1)

一般情况下,我建议您安装Oracle JDK而不是OpenJDK。否则,您可能会遇到一些问题。我总是在OpenJDK上发现各种各样的问题,我甚至不再费心去尝试。

here下载JDK RPM并按照通常的说明进行操作。它通常非常简单,没有问题。

完整的详细说明,包括如何安装here

确保选择所需的正确版本(JDK 1.7或JDK 1.6,不要混用),因为根据您的问题,您似乎混淆了从1.5到1.7的库版本。

另外,在安装新设备之前先卸载已安装的设备,以避免冲突。

答案 2 :(得分:0)

在此处查看我的答案Transaction check error when installing Sun JDK 7

基本上你可以使用rpm --force在另一个上面安装一个JDK。当您必须针对不同的JAVA版本进行开发时,此方案完全有效。

答案 3 :(得分:0)

刚遇到同样的问题。我不习惯使用--force命令;不想冒这个系统设置安装的现有Java的风险。

我最终执行了以下操作,并使用不同用户ID在不同版本的Java上运行应用服务器。

下载了Java tar.gz版本并且未压缩:

tar -zxvf jdk-7u45-linux-x64.gz

创建目录:

mkdir /usr/java/jdk1.7.0_45

手动将内容复制到新目录:

cp -r /.../jdk1.7.0_45/* /usr/java/jdk1.7.0_45

在.bashrc和.bash_profile文件中的用户ID主目录下设置java_home:

export JAVA_HOME=/usr/java/jdk1.7.0_45
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$PATH:/usr/sfw/lib/gcc:/usr/sfw/bin 

答案 4 :(得分:0)

sudo rpm -i jdk-11.0.9_linux-x64_bin.rpm 或您要安装的任何软件包