Возникла ошибка при установке 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
Установите 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
и еще раз попробуйте снести. Потом удалите симлинк.
Комментариев нет:
Отправить комментарий