Не могу установить jdk на Fedora ни с yum, ни с rpm

Помогите! Я не могу понять, как установить 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 -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)
Требования

I должен имеют "jni.h","libjava.so","libhpi.so","lipverify.so" а также "libjvm.soв комплекте

До сих пор я узнал, что они не имеют то, что мне нужно:

Нежелательные версии (наверняка):jdk1.7.0_06 <-Я удивлен этим, но у него нет ни libjvm, ни libhpiJava-1.7.0Java-OpenJDKJava-1.7.0-OpenJDK-1.7.0.9.x86_64Java-1.5.0-GCJ-4,4Java-1.6.0-OpenJDKJava-1.7.0-openjdk.x86_64JRE-1.5.0-GCJJRE-1.7.0-openjdk.x86_64JRE-OpenJDKJRE-1.7.0jre-7u11-linux-x64.rpm java-1.5.0-gcj-1.5.0.0JRE-1.5.0jre1.7.0_11JRE-GCJ

И они делают:

Желаемые версии (о которых я знаю, может быть и больше):jdk1.6.0_34-x86jdk1.5.0_22-x86Java-6-OpenJDK

Может кто-нибудь помочь мне установить jdk1.6 или java-6-openjdk, пожалуйста?

Ответы на вопрос(4)

оманду --force; не хотел рисковать испортить существующую Java, установленную при настройке системы.

В итоге я сделал следующее и запустил сервер приложений с другой версией 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

Задайте java_home в домашнем каталоге идентификатора пользователя в файлах .bashrc и .bash_profile:

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 
Решение Вопроса

я бы предложил установить Oracle JDK, а не OpenJDK. В противном случае вы можете столкнуться с некоторыми проблемами. Я всегда сталкивался с проблемами всех видов и размеров с OpenJDK, которые я даже не потрудился попробовать.

Загрузите RPM JDK сВот и следуйте обычным инструкциям. Это обычно очень просто и без проблем.

Полные подробные инструкции, включая как установитьВот.

Убедитесь, что вы выбрали правильную версию, которая вам нужна (JDK 1.7 или JDK 1.6, не смешивайте), потому что из вашего вопроса вы, похоже, путаете версии библиотек от 1.5 до 1.7.

И еще: удалите все, что вы уже установили, перед установкой нового, чтобы избежать конфликтов.

 jbx15 мар. 2019 г., 14:52
Обратите внимание, что мой ответ здесь устарел и действителен только в контексте JDK 1.7. Начиная с JDK 11, использование OpenJDK - это путь, если только вы не хотите работать с лицензионной поддержкой Oracle, в этом случае использование Oracle JDK может иметь для вас смысл.
 Katie S29 апр. 2013 г., 19:03
В своем вопросе я заявил, что скачал «jdk-7u21-linux-x64.rpm» с веб-сайта Oracle, попытался установить его, и он сказал что-то противоречивое ... Однако я смог загрузить и установить jdk-6u45 -linux-x64-rpm.bin с веб-сайта Oracles, так что, я думаю, сработала нижняя версия! Спасибо
 jbx30 апр. 2013 г., 20:19
Я предполагаю, что в предыдущих версиях openjdk было что-то остаточное, что могло послужить причиной конфликта (поэтому я сказал, что удалите все, что нужно для установки в чистой системе). Рад, что вы справились с JDK1.6

Ошибка проверки транзакции при установке Sun JDK 7

Обычно вы можете использовать rpm --force для установки одного JDK поверх другого. Этот сценарий полностью действителен, особенно если вам приходится разрабатывать для разных версий JAVA.

что вы не можете использовать Oracle rpm для установки JDK 7, когда у вас уже есть Oracle JDK 6, так как он пытается установить/etc/init.d/jexec скрипт, который уже установлен и необходим для JDK 6.

Я бы посоветовал придерживаться тарбола или самораспаковывающегося*.bin и использование JAVA_HOME, если вы собираетесь использовать дистрибутив Oracle, поскольку у него нет этой проблемы и вам, вероятно, не понадобитсяjexec так или иначе.

 Rondo06 янв. 2014 г., 23:19
Это правильный ответ для тех, кто не хочет ограничиваться одной устанавливаемой версией.

Ваш ответ на вопрос