Не удается загрузить пакет Oracle jdk-8u181 с помощью wget за HTTP-прокси

999
yaobin

(Это копия моего вопроса о переполнении стека . Я понял, что лучше всего задать этот вопрос суперпользователю.)

Я пытаюсь использовать команду WebUpd8 oracle-java8-installerдля установки Java 8 на мои компьютеры с Ubuntu 14.04. Некоторые из них могли преуспеть, но другие потерпели неудачу. После некоторой отладки я понял, что это вызвано настройкой HTTP-прокси . Я приведу более подробную информацию ниже, но в основном мои вопросы таковы: почему использование http_proxyвызывает проблему? Я считаю, что это должно быть связано с тем, как работает HTTP-прокси, но, поскольку у меня мало опыта в этом, кто-то может сказать мне, какие знания я должен изучить, чтобы понять эту проблему?

Вот больше подробностей.

Под капотом oracle-java8-installerиспользуется wgetдля загрузки пакета jdk-8u181. Таким образом, я могу воспроизвести проблему с шагами ниже:

  • Установить apt-cacher-ng:sudo apt-get install apt-cacher-ng
  • Вам не нужно ничего настраивать в конфигурации APT, чтобы воспроизвести эту проблему. apt-cacher-ngиспользует localhost:3142по умолчанию для кэширования пакетов.
  • Бежать http_proxy="http://localhost:3142" wget --continue --no-check-certificate -O jdk-8u181-linux-x64.tar.gz --header "Cookie: oraclelicense=a" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

Вот некоторые заметки:

  • Это http://localhost:3142настроено для apt-cacher-ng. Те машины, которые потерпели неудачу, были apt-cacher-ngустановлены до того, как я попытался установить jdk-8u181.
  • Это Cookie: oraclelicense=aозначает, что пользователь принял лицензию.

Если вы запустите последнюю команду, загрузка jdk-8u181-linux-x64.tar.gzбудет немедленно завершена. Есть строка с надписью «Запрос прокси отправлен, ожидание ответа ... 200 OK». Но если вы откроете полученный «.tar.gz», вы увидите, что это просто HTML-страница с информацией об ошибках.

Если вы удалите http_proxyпеременную среды и запустите:

wget --continue --no-check-certificate -O jdk-8u181-linux-x64.tar.gz --header "Cookie: oraclelicense=a" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

У вас будет полный пакет загружен правильно.

Мое лучшее предположение заключается в том, что HTTP-прокси работает, wgetесли целевой URL является окончательным, поэтому прокси-сервер будет кешировать его в своем хранилище. Концептуально это похоже на хранилище ключей:

proxy['URL'] = result 

Однако в этом случае целевой URL ( http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz ) фактически возвращает " 302 "код и поле заголовка" Местоположение "для нового URL. Это видно из вывода:

ywen @ ubuntu: ~ $ wget --продолжить --no-check-certificate -O jdk-8u181-linux-x64.tar.gz --header "Cookie: oraclelicense = a" http://download.oracle.com/ otn-pub / java / jdk / 8u181-b13 / 96a7b8442fe848ef90c96a2fad6ed6d1 / jdk-8u181-linux-x64.tar.gz --2018-08-01 11: 10: 04-- http://download.oracle.com/otn -pub / Java / JDK / 8u181-B13 / 96a7b8442fe848ef90c96a2fad6ed6d1 / JDK-8u181-Linux-x64.tar.gz

Разрешение download.oracle.com (download.oracle.com) ... 23.32.72.143

Подключение к download.oracle.com (download.oracle.com) | 23.32.72.143 |: 80 ... подключено.

HTTP-запрос отправлен, ожидание ответа ... 302 Временно перемещено

Расположение: https://edelivery.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz [следующий]

--2018-08-01 11: 10: 04-- https://edelivery.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

Разрешение edelivery.oracle.com (edelivery.oracle.com) ... 23.216.148.161, 2001: 559: 19: 3081 :: 2d3e, 2001: 559: 19: 3086 :: 2d3e

Подключение к edelivery.oracle.com (edelivery.oracle.com) | 23.216.148.161 |: 443 ... подключено.

HTTP-запрос отправлен, ожидание ответа ... 302 Временно перемещено

Расположение: http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1533136324_72efc4e6208a5a7fc1cbba0527c741b6 [следующие]

--2018-08-01 11: 10: 04-- http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz? AuthParam = 1533136324_72efc4e6208a5a7fc1cbba0527c741b6

Подключение к download.oracle.com (download.oracle.com) | 23.32.72.143 |: 80 ... подключено.

HTTP-запрос отправлен, ожидание ответа ... 200 OK

Длина: 185646832 (177M) [приложение / x-gzip]

Сохранение в: 'jdk-8u181-linux-x64.tar.gz'

Обработка перенаправления выходит за рамки возможностей прокси-сервера (я прав ??), поэтому на тех компьютерах, на которых установлены HTTP-прокси, произошел сбой.

0

0 ответов на вопрос

Похожие вопросы