Это более простой способ, когда вы получаете эту ошибку:
package jdk.... (which is newer than jdk...) is already installed
Используйте --force
флаг для установки нескольких версий.
Так, например:
sudo rpm -ivh --force jdk-6u35-linux-amd64.rpm
Это то, чего я хотел бы достичь, но у меня ничего не получается (я новичок в 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
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*
установив 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*
Мои вопросы:
PS: это мой первый вопрос здесь. Я заранее прошу прощения, если что-то не так (от моего английского до форматирования и чего-либо еще). PS2: Я пытался добавить тег sun-java7-jdk к этому вопросу, но у меня недостаточно репутации, чтобы сделать это ... если этот тег быть создан?
Это более простой способ, когда вы получаете эту ошибку:
package jdk.... (which is newer than jdk...) is already installed
Используйте --force
флаг для установки нескольких версий.
Так, например:
sudo rpm -ivh --force jdk-6u35-linux-amd64.rpm
У меня были похожие проблемы, когда Oracle java и OpenJDK существовали бок о бок в Fedora 16. Я следовал руководству, если не правда, то ложь, и это сработало отлично.
jdk-7u2-linux-x64.rpm
новее, jdk-6u30-linux-amd64.rpm
и инструмент управления пакетами RPM достаточно умен, чтобы перезаписать его новым выпуском.
Самый простой способ установить Sun java 6 и Sun Java Java 7 рядом друг с другом - это загрузить архивы Java из Oracle и извлечь их в /opt
I think Dejan is correct about installing the Java tarballs instead of the RPM. If you set up your JAVA_HOME
and PATH
correctly most uses will not need the additional setup that the RPM installation gives you (see this page for details of what jexec actually does).
One problem might be that some versions of the JDK do not make a tarball (*.tar.gz
) available but instead just give you a *-rpm.bin
and a *.bin
. In this case the *.bin
file is actually just a self extracting archive that results in the usual JAVA_HOME directory when you run it.
To install Java Runtime Environment on Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.
# yum install java-1.7.0-openjdk
To intall package to developing programs using Java on Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.
# yum install java-1.7.0-openjdk-devel
from http://namhuy.net/1195/how-to-install-oracle-java-jdk-7.html