Страницы

Поиск по вопросам

четверг, 30 мая 2019 г.

Проблема при установке Oracle JDK на Debian

Возникла ошибка при установке Oracle JDK на Debian 8 Jessie
rostislav@Rostislav-PC:~/Загрузки$ sudo dpkg -i jdk1.8.0-91_1.8.091-1_amd64.deb Выбор ранее не выбранного пакета jdk1.8.0-91. (Чтение базы данных … на данный момент установлено 119167 файлов и каталогов.) Подготовка к распаковке jdk1.8.0-91_1.8.091-1_amd64.deb … Распаковывается jdk1.8.0-91 (1.8.091-1) … Настраивается пакет jdk1.8.0-91 (1.8.091-1) … Unpacking JAR files... tools.jar... plugin.jar... javaws.jar... deploy.jar... rt.jar... jsse.jar... charsets.jar... localedata.jar... jfxrt.jar... /var/lib/dpkg/info/jdk1.8.0-91.postinst: line 641: /usr/sbin/alternatives: Нет такого файла или каталога /var/lib/dpkg/info/jdk1.8.0-91.postinst: line 653: /usr/sbin/alternatives: Нет такого файла или каталога dpkg: ошибка при обработке пакета jdk1.8.0-91 (--install): подпроцесс установлен сценарий post-installation возвратил код ошибки 127 При обработке следующих пакетов произошли ошибки: jdk1.8.0-91
Процесс установки был таким (инструкцию нашел тут):
Скачал официальную версию JDK с сайта Oracle. Установил alien из официального репозитория. Перегнал .rpm в .deb командой sudo alien --scripts jdk-8u91-linux-x64.rpm Установил .deb пакет командой sudo dpkg -i jdk1.8.0-91_1.8.091-1_amd64.deb, во время чего и возникла ошибка
Из-за чего произошла ошибка и как ее исправить?

UPD_0 (kvm): При попытке удалить JDK:
rostislav@Rostislav-PC:~$ dpkg --remove --force-remove-reinstreq jdk1.8.0-91 dpkg: ошибка: запрошенная операция требует привилегий суперпользователя rostislav@Rostislav-PC:~$ sudo dpkg --remove --force-remove-reinstreq jdk1.8.0-91 (Чтение базы данных … на данный момент установлено 116630 файлов и каталогов.) Удаляется jdk1.8.0-91 (1.8.091-1) … /var/lib/dpkg/info/jdk1.8.0-91.postrm: line 586: /usr/sbin/alternatives: Нет такого файла или каталога /var/lib/dpkg/info/jdk1.8.0-91.postrm: line 598: /usr/sbin/alternatives: Нет такого файла или каталога dpkg: ошибка при обработке пакета jdk1.8.0-91 (--remove): подпроцесс установлен сценарий post-removal возвратил код ошибки 127 При обработке следующих пакетов произошли ошибки: jdk1.8.0-91 rostislav@Rostislav-PC:~$ sudo dpkg --purge --force-remove-reinstreq jdk1.8.0-91(Чтение базы данных … на данный момент установлено 116630 файлов и каталогов.) Удаляется jdk1.8.0-91 (1.8.091-1) … /var/lib/dpkg/info/jdk1.8.0-91.postrm: line 586: /usr/sbin/alternatives: Нет такого файла или каталога /var/lib/dpkg/info/jdk1.8.0-91.postrm: line 598: /usr/sbin/alternatives: Нет такого файла или каталога dpkg: ошибка при обработке пакета jdk1.8.0-91 (--purge): подпроцесс установлен сценарий post-removal возвратил код ошибки 127 При обработке следующих пакетов произошли ошибки: jdk1.8.0-91


Ответ

Установить JDK из rpm это целое приключение, лучше воспользоваться java-package
Убедитесь, что подключены contrib архивы в /etc/apt/sources.list
deb jessie main contrib non-free
Установите java-package: apt install java-package Скачайте JDK с сайта Oracle, но не rpm, а tar.gz. Запустите создание deb-пакета JDK:
fakeroot make-jpkg jdk-8u91-linux-x64.tar.gz
Возможно, появятся ошибки о неудовлетворенных зависимостях, установите пакеты, о которых говорится в ошибках, затем заново запустите создание пакета. В моем случае было:
sudo apt install libgl1-mesa-glx libxslt1.1 libxtst6 libxxf86vm1
Удалите старый некорректно установленный пакет JDK. Установите созданный пакет
sudo dpkg -i oracle-java8-jdk_8u91_amd64.deb


UPD1. Если снести кривой пакет JDK через apt remove jdk1.8.0-91 не удается, удаляем его принудительно:
sudo dpkg --remove --force-remove-reinstreq jdk1.8.0-91 sudo dpkg --purge --force-remove-reinstreq jdk1.8.0-91

UPD2. Создайте симлинк
sudo ln -s /usr/sbin/update-alternatives /usr/sbin/alternatives
и еще раз попробуйте снести. Потом удалите симлинк.

Комментариев нет:

Отправить комментарий