(To jest kopia mojego pytania na temat przepełnienia stosu . Uświadomiłem sobie, że superużytkownik może być lepszym miejscem do zadawania tego pytania).
Próbuję użyć zespołu WebUpd8 oracle-java8-installer
do zainstalowania Java 8 na moich komputerach Ubuntu 14.04. Niektóre z nich mogą odnieść sukces, a inne nie. Po pewnym debugowaniu zdałem sobie sprawę, że było to spowodowane ustawieniem proxy HTTP . Podam więcej szczegółów poniżej, ale w zasadzie moje pytania brzmią: Dlaczego użycie http_proxy
przyczyny powoduje problem? Uważam, że musi to mieć związek z tym, jak działa serwer proxy HTTP, ale skoro mam niewielkie doświadczenie, czy ktoś mógłby mi powiedzieć, jakiej wiedzy powinienem nauczyć się rozumieć ten problem?
Oto więcej szczegółów.
Pod maską oracle-java8-installer
używa się wget
do pobrania pakietu jdk-8u181. Aby odtworzyć problem, wykonaj poniższe czynności:
- Zainstaluj
apt-cacher-ng
:sudo apt-get install apt-cacher-ng
- Nie trzeba niczego konfigurować w konfiguracji APT, aby odtworzyć ten problem. domyślnie
apt-cacher-ng
używalocalhost:3142
do buforowania pakietów. - Biegać
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
Oto kilka uwag:
http://localhost:3142
Jest skonfigurowanyapt-cacher-ng
. Te komputery, które zawiodły, zostałyapt-cacher-ng
zainstalowane, zanim próbowałem zainstalować jdk-8u181.Cookie: oraclelicense=a
Jest wskazanie użytkownik zaakceptował licencji.
Jeśli uruchomisz ostatnie polecenie, pobieranie jdk-8u181-linux-x64.tar.gz
zostanie zakończone natychmiast. Jest wiersz z komunikatem „Wysłano żądanie proxy, oczekuje na odpowiedź ... 200 OK”. Ale jeśli otworzysz otrzymany plik „.tar.gz”, zobaczysz, że jest to tylko strona HTML zawierająca informacje o błędach.
Jeśli usuniesz http_proxy
zmienną środowiskową i uruchom:
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
Pełny pakiet zostanie pobrany poprawnie.
Domyślam się, że serwer proxy HTTP działa, wget
jeśli docelowy adres URL jest końcowym adresem URL, więc serwer proxy buforuje go w swojej pamięci. Pod względem koncepcyjnym przypomina sklep z kluczowymi wartościami:
proxy['URL'] = result
Jednak w tym przypadku docelowy adres URL ( http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz ) faktycznie zwraca „ 302 ” i pole nagłówka„ Lokalizacja ”dla nowego adresu URL. Można to zobaczyć na podstawie danych wyjściowych:
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
Rozwiązanie download.oracle.com (download.oracle.com) ... 23.32.72.143
Łączenie z download.oracle.com (download.oracle.com) | 23.32.72.143 |: 80 ... połączone.
Wysłano żądanie HTTP, oczekując na odpowiedź ... 302 Tymczasowo przeniesione
Lokalizacja: https://edelivery.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz [następujące]
--2018-08-01 11: 10: 04-- https://edelivery.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
Rozwiązanie edelivery.oracle.com (edelivery.oracle.com) ... 23.216.148.161, 2001: 559: 19: 3081 :: 2d3e, 2001: 559: 19: 3086 :: 2d3e
Łączenie z edelivery.oracle.com (edelivery.oracle.com) | 23.216.148.161 |: 443 ... połączone.
Wysłano żądanie HTTP, oczekując na odpowiedź ... 302 Tymczasowo przeniesione
--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
Łączenie z download.oracle.com (download.oracle.com) | 23.32.72.143 |: 80 ... połączone.
Wysłano żądanie HTTP, oczekując na odpowiedź ... 200 OK
Długość: 185646832 (177M) [application / x-gzip]
Zapisywanie do: 'jdk-8u181-linux-x64.tar.gz'
Obsługa przekierowania jest niemożliwa dla serwera proxy (czy mam rację?), Dlatego te maszyny z serwerami proxy HTTP zawiodły.