Das Oracle-Paket jdk-8u181 kann nicht mithilfe von wget hinter einem HTTP-Proxy-Server heruntergeladen werden

1097
yaobin

(Dies ist eine Kopie meiner Frage zu Stack Overflow . Ich habe erkannt, dass Superuser der bessere Ort sein könnte, um diese Frage zu stellen.)

Ich versuche, das WebUpd8-Team zu verwenden oracle-java8-installer, um Java 8 auf meinen Ubuntu 14.04-Computern zu installieren. Einige konnten Erfolg haben, andere scheiterten jedoch. Nach einigem Debugging wurde mir klar, dass dies durch die HTTP-Proxy-Einstellung verursacht wurde . Ich werde im Folgenden weitere Details angeben, aber im Grunde sind meine Fragen: Warum verursacht die Verwendung des http_proxyProblems das Problem? Ich glaube, es muss sich auf die Funktionsweise eines HTTP-Proxys beziehen, aber da ich wenig Erfahrung damit habe, könnte mir jemand sagen, welches Wissen ich lernen sollte, um dieses Problem zu verstehen?

Hier sind weitere Details.

Unter der Haube sind die oracle-java8-installerAnwendungen wgetauf das JDK-8u181 Paket herunterladen. So kann ich das Problem mit den folgenden Schritten reproduzieren :

  • Installiere apt-cacher-ng:sudo apt-get install apt-cacher-ng
  • Sie müssen in der APT-Konfiguration nichts konfigurieren, um dieses Problem zu reproduzieren. apt-cacher-ngverwendet localhost:3142standardmäßig zum Zwischenspeichern der Pakete.
  • Lauf 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

Hier einige Anmerkungen:

  • Das http://localhost:3142ist für konfiguriert apt-cacher-ng. Die Maschinen, die fehlgeschlagen waren, wurden apt-cacher-nginstalliert, bevor ich versuchte, jdk-8u181 zu installieren.
  • Das Cookie: oraclelicense=aist, um anzuzeigen, der Benutzer die Lizenz akzeptiert hat.

Wenn Sie den letzten Befehl ausführen, ist der Download des Befehls jdk-8u181-linux-x64.tar.gzsofort beendet. Es gibt eine Zeile mit der Meldung "Proxy-Anfrage wurde gesendet, wartet auf Antwort ... 200 OK". Wenn Sie jedoch die empfangene ".tar.gz" öffnen, wird nur eine HTML-Seite angezeigt, die Fehlerinformationen enthält.

Wenn Sie die http_proxyUmgebungsvariable entfernen und ausführen:

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

Sie werden das vollständige Paket korrekt heruntergeladen haben.

Meine beste Vermutung ist, dass ein HTTP-Proxy verwendet wird, wgetwenn die Ziel-URL die endgültige URL ist. Der Proxy würde ihn also in seinem Speicher zwischenspeichern. Konzeptionell ist es wie ein Schlüsselwertspeicher:

proxy['URL'] = result 

In diesem Fall gibt die Ziel-URL ( http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz ) tatsächlich einen " 302 "Code und ein Headerfeld" Location "für die neue URL. Dies ist aus der Ausgabe ersichtlich:

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

Auflösen von download.oracle.com (download.oracle.com) ... 23.32.72.143

Verbindung zu download.oracle.com (download.oracle.com) | 23.32.72.143 |: 80 ... hergestellt.

HTTP-Anfrage gesendet, wartet auf Antwort ... 302 Temporär verschoben

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

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

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

Verbindung zu edelivery.oracle.com (edelivery.oracle.com) | 23.216.148.161 |: 443 ... hergestellt.

HTTP-Anfrage gesendet, wartet auf Antwort ... 302 Temporär verschoben

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

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

Verbindung zu download.oracle.com (download.oracle.com) | 23.32.72.143 |: 80 ... hergestellt.

HTTP-Anfrage gesendet, wartet auf Antwort ... 200 OK

Länge: 185646832 (177M) [Anwendung / x-gzip]

Speichern unter: 'jdk-8u181-linux-x64.tar.gz'

Die Verarbeitung der Umleitung liegt außerhalb der Möglichkeiten eines Proxys (Am I right ??), daher sind die mit den HTTP-Proxys gesetzten Maschinen ausgefallen.

0

0 Antworten auf die Frage