встановіть sun java 6 та sun java 7 на linux (fedora 16), використовуючи rpm


8

Цього я хотів би досягти, але мені не вдається (я новачок в 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

і витягнув пакет rpm з всередині .binзапущеного файлу

./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 . Насправді обидва пакети, здається, пересуваються із обороту в хвилину:

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

це працює майже гладко, тому що говорить обертовий хід

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*

не вдається сказати дві речі:

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. я щось пропускаю в процесі встановлення? Чи справді можливо мати java 6 і java 7 на одній машині Linux? Як? Що я роблю неправильно?
  3. Чи є інший спосіб досягти своєї мети?

PS: це моє перше питання тут. Я заздалегідь вибачаюсь, якщо щось не так (від моєї англійської мови до форматування і чогось іншого) PS2: Я намагався додати тег sun-java7-jdk до цього питання, але у мене недостатньо репутації, щоб це зробити ... чи повинен цей тег створити?

Відповіді:


3

У мене були подібні проблеми з тим, щоб Oracle java та OpenJDK існували пліч-о-пліч на Fedora 16. Я дотримувався інструкції на тему If If True, то False, і вона працювала чудово.


5
Не могли б ви узагальнити статтю тут? Ми вважаємо за краще, щоб ви тут не посилалися лише на статті.
Саймон Шихан

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.rpmі інструмент управління пакетами RPM досить розумний, щоб замінити його новим випуском.

Найпростіший спосіб встановити sun java 6 і sun java 7 набік - це завантажити тарболи Java з Oracle і витягнути їх у /opt


1

Я думаю, що Деян вірно встановив Java tarballs замість RPM. Якщо ви налаштували своє JAVA_HOMEі PATHправильно більшість застосувань, не знадобиться додаткова установка, яку дає вам установка RPM (див. На цій сторінці детальну інформацію про те, що насправді робить jexec ).

Одна з проблем може полягати в тому, що деякі версії JDK не надають тарбол ( *.tar.gz), а натомість просто дають вам *-rpm.binі а *.bin. У цьому випадку *.binфайл насправді є лише архівом, що самостійно витягує, що при запуску в нього з'являється звичайний каталог JAVA_HOME.


0

Щоб встановити Java Runtime Environment на Fedora, Oracle Linux, Red Hat Enterprise Linux тощо.

# yum install java-1.7.0-openjdk

Вбудувати пакет для розробки програм, що використовують Java на Fedora, Oracle Linux, Red Hat Enterprise Linux тощо.

# yum install java-1.7.0-openjdk-devel

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.