Цього я хотів би досягти, але мені не вдається (я новачок в 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*
Мої запитання:
- символічна проблема створення ланки: чи є спосіб її виправити? Процес установки, здається, не усвідомлює, що я намагався використовувати механізм переїзду, навіть якщо пакет переміщується (наскільки я бачу)
- я щось пропускаю в процесі встановлення? Чи справді можливо мати java 6 і java 7 на одній машині Linux? Як? Що я роблю неправильно?
- Чи є інший спосіб досягти своєї мети?
PS: це моє перше питання тут. Я заздалегідь вибачаюсь, якщо щось не так (від моєї англійської мови до форматування і чогось іншого) PS2: Я намагався додати тег sun-java7-jdk до цього питання, але у мене недостатньо репутації, щоб це зробити ... чи повинен цей тег створити?