Dlaczego apt-get zawsze używa proxy, chociaż proxy nie jest skonfigurowane?


26

Próbuję wyłączyć serwer proxy, apt-getale wygląda na to, że apt-getpobiera konfigurację serwera proxy z innego miejsca niż /etc/apt/apt.conf, ponieważ chociaż apt.confplik jest pusty (a serwer proxy ustawiony na None), nadal próbuje się połączyć z serwerem proxy.

Czy ktoś ma pomysł?

Odpowiedzi:


32

Używam skryptu do zastępowania różnych plików konfiguracyjnych, aby łatwo przełączać się między środowiskami proxy i bez proxy. Problem polegał na tym, że zastąpiłem plik apt.conf serwera proxy pustym plikiem apt.conf, który następnie zignorował.

Po zapisaniu Acquire::http::Proxy "false";w apt.conf działało bez proxy :)


To działa! Wyłączono proxy za pomocą apt.conf.
Chu-Siang Lai

1
Im mój przypadek działał po prostu usuwając plik 95proxy.conf z /etc/apt/apt.conf.d/, ale lepiej to wyrazić: D dziękuję.
m3nda

gdzie jest ten plik apt.conf?
Lost Crotchet

@LostCrotchet/etc/apt/apt.conf
Ahatius

12

Czasami wciąż są ustawione zmienne środowiskowe proxy.

Aby się dowiedzieć, wykonaj następujące polecenie:

env | grep proxy

Jeśli zobaczysz jakieś dane wyjściowe, na przykład:

http_proxy=http://127.0.0.1:1234/

Następnie musisz rozbroić tę zmienną.

Aby to zrobić, wykonaj następujące polecenie:

unset http_proxy

Zastosuj to samo podejście do wszystkich innych wpisów, takich jak https_proxy.


1
Dzięki za podpowiedź, niestety zarówno serwer proxy http, jak i https są puste: \
Ahatius,

Hmm Ciekawy. Chociaż wątpię w to, ale może zmienna to HTTP_PROXY(wszystkie env | grep -i proxy (-iwielkie litery), więc spróbuj oznaczać „bez rozróżniania wielkości liter”) i sprawdź, czy jest jakiś wynik; warto spróbować = /. Czy możesz to zrobić grep -iR proxy /etc/apt/? Wyszukuje słowo proxy we wszystkich plikach poniżej /etc/apt/, ponieważ proxy jest czasem ustawione w pliku poniżej /etc/apt/apt.conf.d/.
Alaa Ali,

Nie ma to również związku z tym, że proxy to same wielkie litery. Wykonanie polecenia grep również nie ujawniło żadnego innego pliku zawierającego konfigurację proxy.
Ahatius,

Ok, chyba to rozumiem. Używam skryptu do przełączania wszystkich plików konfiguracyjnych dla serwerów proxy. Problem polegał na tym, że zastąpiłem apt.conf pustym plikiem. Apt wtedy oczywiście zawsze ładował ostatnią konfigurację proxy, ponieważ wartość proxy nie była ustawiona na false. W każdym razie dzięki za twoje wysiłki!
Ahatius,

Maype env proxy ma ustawione /etc/environment, więc możemy szukać tutaj.
Chu-Siang Lai

4

Nie ma tylko jednego miejsca, w którym apt-get czytaj pliki konfiguracyjne. Powinieneś uruchomić, grep -i proxy /etc/apt/apt.conf.d/*a otrzymasz dokładny plik z ustawieniami proxy (jest to tylko przykład z uruchomionym updatezamiast proxy:

grep -i update /etc/apt/apt.conf.d/*
/etc/apt/apt.conf.d/20apt-show-versions:// When Apt's cache is updated (i.e. apt-cache update)
/etc/apt/apt.conf.d/20packagekit:// Whenever dpkg is called we might have different updates
/etc/apt/apt.conf.d/20packagekit:// i.e. if an user removes a package that had an update
/etc/apt/apt.conf.d/20packagekit:"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 1 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null";
/etc/apt/apt.conf.d/20packagekit:// When Apt's cache is updated (i.e. apt-cache update)
/etc/apt/apt.conf.d/20packagekit:"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 1 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null";

To nie wystarczy, plik /etc/apt/apt.confmoże również zawierać informacje o serwerze proxy. Może być również napisane wielką literą.
kap

3

Jeśli nie chcesz apt-getkorzystać z serwera proxy, użyj apt-getjako:

sudo apt-get -o Acquire::http::proxy=false <update/install> 

2

Możliwe, że zmienna środowiskowa http_proxy jest ustawiona na jakiś serwer proxy. spróbuj wyczyścić zmienną (lub przynajmniej sprawdź, czy ma wartość)


2

Głupim sposobem na jego działanie jest wyłączenie proxy na jakiś czas system settings > Network.

Lub usuń konfigurację proxy z /etc/environmenti/etc/apt/apt.conf

wprowadź opis zdjęcia tutaj

I dodaj ręczną konfigurację proxy z powrotem, gdy będziesz potrzebować proxy z powrotem.


To zadziałało i jest naprawdę proste :)
Ankit Shubham
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.