Русский English Тэги View Sergey Zolotaryov's profile on LinkedIn Вход
Установка JDK8 от Oracle в Gentoo без icetea
Постоянная ссылка 31-12-2014 anydoby java linux

Попытка установить JDK от оракла на Gentoo приводит к тому, что дополнительно система пытается подсунуть ещё и чашку холодного чаю (icedtea-bin +90мб не нужного добра). Вроде бы как противоречит концепции "лёгкого" дистрибутива, в котором нет ничего лишнего.

Дело в том, что зависимость на этот icedtea находится где-то глубоко в пакете java-config. И никак без него. Покопавшись с гугле нашёл очень хороший способ избавиться от нагрузки:


# тянем конфиг пакет без зависимостей - это чисто хак
emerge -1 --nodeps app-admin/eselect-java 
# а дальше вроде все правильно
emerge -av --tree oracle-jdk-bin:1.8

Вторая команда выдаёт матюки про лицензии и ключи, которые надо добавить. JDK и JCE policy (если надо), качаем руками и суём в /usr/portage/distfiles.

Лицензии я автоматически принимаю, врядли кто-то их читает, правильно?


echo 'ACCEPT_LICENSE="*"' >> /etc/portage/make.conf
echo "=dev-java/oracle-jdk-bin-1.8.0.25 ~amd64" >> /etc/portage/package.accept_keywords

Если установщик выдаст ошибку при распаковке архивов, не забудьте дать права пользователю portage на эти файлы:


chown -R portage:portage /usr/portage/distfiles/jce_policy-8.zip 
chown -R portage:portage /usr/portage/distfiles/jdk-8u25-linux-x64.tar.gz

Проверяем присутсвие отсутствия:


eselect java-vm list

Available Java Virtual Machines:
  [1]   oracle-jdk-bin-1.8  system-vm

Всё.

Нет, не всё :) Если вы попытаетесь обновить мир, то пакет eselect-java попытается подсосать icedtea нужной ему версии. Чтобы побороть эту бяку, надо поменять несколько файлов.

Маскируем icedtea


# /etc/portage/package.mask

dev-java/icedtea-bin
dev-java/icedtea-web

Меняем версии виртуальных пакетов, потому что в данный момент ему требуется 1.6, а нам надо 1.8:


# /etc/portage/package.unmask

>=virtual/jdk-1.8
>=virtual/jre-1.8

Ну и напоследок, нужно принять ключи (для моей системы это ~amd64):


# /etc/portage/package.accept_keywords

>=virtual/jdk-1.8.0 ~amd64
>=virtual/jre-1.8.0 ~amd64

Теперь всё.

Добавить комментарий

Предыдущая статья Сравнение производительности RandomAccessFile и FileChannel