Não é possível baixar o pacote jdk-8u181 da Oracle usando o wget por trás de um proxy HTTP

0

(Esta é uma cópia de minha pergunta no Stack Overflow . Percebi que o superusuário pode ser o melhor lugar para fazer essa pergunta.

Estou tentando usar o oracle-java8-installer da equipe do WebUpd8 para instalar o Java 8 no meu Ubuntu 14.04 computadores. Alguns deles poderiam ter sucesso, mas outros falharam. Depois de alguma depuração, percebi que isso foi causado pela configuração do proxy HTTP . Vou fornecer mais detalhes abaixo, mas basicamente as minhas perguntas são: Por que o uso de http_proxy causa o problema? Eu acredito que deve estar relacionado a como um proxy HTTP funciona, mas desde que eu tenho pouca experiência nisso, alguém poderia me dizer que conhecimento eu deveria aprender para entender essa questão?

Aqui estão mais detalhes.

Sob o capô, o oracle-java8-installer usa wget para baixar o pacote jdk-8u181. Por isso, posso reproduzir o problema com os passos abaixo:

  • Instale apt-cacher-ng : sudo apt-get install apt-cacher-ng
  • Você não precisa configurar nada na configuração do APT para reproduzir esse problema. apt-cacher-ng usa localhost:3142 por padrão para armazenar em cache os pacotes.
  • Executar 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

Aqui estão algumas notas:

  • O http://localhost:3142 está configurado para apt-cacher-ng . Aquelas máquinas que falharam tinham apt-cacher-ng instalado antes de eu tentar instalar o jdk-8u181.
  • O Cookie: oraclelicense=a indica que o usuário aceitou a licença.

Se você executar o último comando, o download do jdk-8u181-linux-x64.tar.gz será concluído instantaneamente. Há uma linha dizendo "Solicitação de proxy enviada, aguardando resposta ... 200 OK". Mas se você abrir o ".tar.gz" recebido, verá que é apenas uma página HTML que contém informações de erro.

Se você remover a variável de ambiente http_proxy e executar:

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

Você terá o pacote completo baixado corretamente.

Meu melhor palpite é que um proxy HTTP funcione com wget se o URL de destino for o URL final, para que o proxy o armazene em cache. Conceitualmente, é como um armazenamento de valor-chave:

proxy['URL'] = result

No entanto, neste caso, o URL de destino ( link ) na verdade retorna um código" 302 " e um campo de cabeçalho" Local "para o novo URL. Isso pode ser visto na saída:

ywen@ubuntu:~$ 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 --2018-08-01 11:10:04-- http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

Resolving download.oracle.com (download.oracle.com)... 23.32.72.143

Connecting to download.oracle.com (download.oracle.com)|23.32.72.143|:80... connected.

HTTP request sent, awaiting response... 302 Moved Temporarily

Location: https://edelivery.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz [following]

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

Resolving edelivery.oracle.com (edelivery.oracle.com)... 23.216.148.161, 2001:559:19:3081::2d3e, 2001:559:19:3086::2d3e

Connecting to edelivery.oracle.com (edelivery.oracle.com)|23.216.148.161|:443... connected.

HTTP request sent, awaiting response... 302 Moved Temporarily

Location: http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1533136324_72efc4e6208a5a7fc1cbba0527c741b6 [following]

--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

Connecting to download.oracle.com (download.oracle.com)|23.32.72.143|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 185646832 (177M) [application/x-gzip]

Saving to: ‘jdk-8u181-linux-x64.tar.gz’

O manuseio do redirecionamento está fora da capacidade de um proxy (Estou certo ??), portanto, as máquinas configuradas com os proxies HTTP falharam.

    
por yaobin 01.08.2018 / 23:24

0 respostas