суббота, 3 ноября 2018 г.

Ручная установка Oracle Java 8 на Debian Linux.



Сейчас будет по сути вольный перевод руководства, которое есть на сайте Debian. Записываю больше для себя, если вдруг приспичит установить JRE/JDK удалённо из горящего танка, имея под рукой только ssh-клиент, браузер и мало трафика.
Кое-что взял из руководства, что-то подсмотрел, до чего-то додумался сам.


Инструментарий, который понадобится:
  1. Утилита "make-jpkg"  из пакета "java-package";
  2. Не слишком старый браузер, который умеет исполнять JavaScript и работать с сайтами по HTTPS;
  3. SSH-клиент.
Если всё есть, то можно приступать.

Заходим на удалённый сервер по SSH и открываем браузер.
На удалённом сервере устанавливаем "java-package":
sudo apt install java-package

В браузере открываем ссылки на JRE и JDK.
На обеих страница надо принять лицензионное соглашение, чтобы стали доступны ссылки:


Теперь необходимо скопировать ссылки на нужную версию. Для Linux x64 на версию 8u191 они будут выглядеть так:
http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jre-8u191-linux-x64.tar.gz
http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz

Переходим к SSH-клиенту.

Чтобы файл успешно скачался, надо добавить кое-какие заголовки к запросу для эмитции принятия лицензионного соглашения
# Загрузка JDK
wget --header "Cookie: oraclelicense=a" --content-disposition http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz -O jdk-8u191-linux-x64.tar.gz
# Загрузка JRE
wget --header "Cookie: oraclelicense=a" --content-disposition http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jre-8u191-linux-x64.tar.gz -O jre-8u191-linux-x64.tar.gz

Если всё сделано правильно, то в каталоге должны появиться файлы "jre-8u191-linux-x64.tar.gz" и "jdk-8u191-linux-x64.tar.gz".
Из них необходимо сделать deb-пакеты для установки. Делается это следующим образом:

$ make-jpkg jre-8u191-linux-x64.tar.gz
Creating temporary directory: /tmp/make-jpkg.1Aw4J5M4RR
Loading plugins: /usr/share/java-package/common.sh /usr/share/java-package/javase.sh /usr/share/java-package/jdk-doc.sh /usr/share/java-package/oracle-jdk-doc.sh /usr/share/java-package/oracle-jdk.sh /usr/share/java-package/oracle-jre.sh /usr/share/java-package/oracle-server-jre.sh

Detected Debian build architecture: amd64
Detected Debian GNU type: x86_64-linux-gnu

Detected product:
    Java(TM) Runtime Environment (JRE)
    Standard Edition, Version 8 Update 191
    Oracle(TM)
Is this correct [Y/n]:
# в этом месте надо нажать Enter, если версия совпадает с той,
# которая была загружена с сайта
Checking free diskspace: done.

In the next step, the binary file will be extracted. Probably a
license agreement will be displayed. Please read this agreement
carefully. If you do not agree to the displayed license terms, the
package will not be built.

Press [Return] to continue:
# в этом месте надо нажать Enter для запуска процесса
# Далее будет произведена распаковка архива и сборка пакета
# ... пропущено очень много сообщений ...
# По окончании процесса появится следующее
The Debian package has been created in the current directory.
You can install the package as root with:

    dpkg -i oracle-java8-jre_8u191_amd64.deb


Removing temporary directory: done

Проделываем аналогичную процедуру со вторым файлом.

В каталоге должны появиться новые файлы "oracle-java8-jre_8u191_amd64.deb" и "oracle-java8-jdk_8u191_amd64.deb".

Теперь их надо установить такой командой:

sudo dpkg -i oracle-java8-jre_8u191_amd64.deb oracle-java8-jdk_8u191_amd64.deb

Если появятся сообщения о неудовлетворённых зависимостях, то доустановить нужное надо такой командой:

sudo apt install -f

Для того, чтобы всё описанное выше делалось автоматически, можно использовать PPA-репозиторий webupd8team. Руководство по его добавлению доступно здесь.