Это то, чего я хотел бы достичь, но у меня ничего не получается (я новичок в Linux).
У меня есть Fedora 16 box (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-перемещаемыми:
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
это работает почти гладко, потому что 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`*
а теперь ява 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 к этому вопросу, но у меня недостаточно репутации, чтобы сделать это ... если этот тег быть создан?
Это более простой способ, когда вы получаете эту ошибку:
Используйте
--force
флаг для установки нескольких версий.Так, например:
источник
jdk-7u2-linux-x64.rpm
новее,jdk-6u30-linux-amd64.rpm
и инструмент управления пакетами RPM достаточно умен, чтобы перезаписать его новым выпуском.Самый простой способ установить Sun java 6 и Sun Java Java 7 рядом друг с другом - это загрузить архивы Java из Oracle и извлечь их в
/opt
источник
Я думаю, что Дежан прав насчет установки тарболов Java вместо RPM. Если вы настроили
JAVA_HOME
иPATH
правильно используете, большинству пользователей не потребуются дополнительные настройки, которые дает вам установка RPM (см. Эту страницу для получения подробной информации о том, что на самом деле делает jexec ).Одной из проблем может быть то, что некоторые версии JDK не делают tarball (
*.tar.gz
) доступным, а просто дают вам a*-rpm.bin
и a*.bin
. В этом случае*.bin
файл на самом деле является просто самораспаковывающимся архивом, который при запуске запускает обычный каталог JAVA_HOME.источник
Для установки среды выполнения Java на Fedora, Oracle Linux, Red Hat Enterprise Linux и т. Д.
Внедрить пакет для разработки программ с использованием Java на Fedora, Oracle Linux, Red Hat Enterprise Linux и т. Д.
с http://namhuy.net/1195/how-to-install-oracle-java-jdk-7.html
источник