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

2022-01-13 00:00:00 fedora yum centos java openjdk

帮助!我不知道如何安装jdk!

Help! I can't figure out how to install a 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 的网站:

Here I've manually downloaded some rpm's, the last one from oracle's website:

[~]$ 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

调试

这里有一些调试信息:

Debug

Here's some debug information:

[/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" 包括在内.

Requirements

I must have "jni.h", "libjava.so", "libhpi.so", "lipverify.so" and "libjvm.so" included.

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

So far I've found out that these DO NOT have what I need:

  • 不受欢迎的版本(肯定):
    • 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-x86
      • jdk1.5.0_22-x86
      • java-6-openjdk

      谁能帮我安装 jdk1.6 或 java-6-openjdk 吗?

      Can someone help me install jdk1.6 or java-6-openjdk please?

      推荐答案

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

      The problem here is that you cannot use the Oracle rpm to install JDK 7 when you already have the Oracle JDK 6 as it tries to install the /etc/init.d/jexec script which is already installed and required for JDK 6.

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

      I would advise sticking to the tarball or self extracting *.bin and using JAVA_HOME if you are going to use the Oracle distribution as it does not have this problem and you will probably not need jexec anyway.

相关文章