Сейчас будет по сути вольный перевод руководства, которое есть на сайте Debian. Записываю больше для себя, если вдруг приспичит установить JRE/JDK удалённо из горящего танка, имея под рукой только ssh-клиент, браузер и мало трафика.
Кое-что взял из руководства, что-то подсмотрел, до чего-то додумался сам.
Инструментарий, который понадобится:
- Утилита "make-jpkg" из пакета "java-package";
- Не слишком старый браузер, который умеет исполнять JavaScript и работать с сайтами по HTTPS;
- 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. Руководство по его добавлению доступно здесь.