(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:
apt-cacher-ng
: sudo apt-get install apt-cacher-ng
apt-cacher-ng
usa localhost:3142
por padrão para armazenar em cache os pacotes. 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:
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. 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.
Tags java wget http-proxy download