Befolgen Sie die Anweisungen auf die beste Art und Weise, um geeignete Downloads in einem LAN zwischenzuspeichern. Ich habe einen Caching-Proxy in meinem lokalen Netzwerk eingerichtet. Da dieser Computer nicht immer verfügbar ist, möchte ich die Liste der Quellen aktualisieren und Pakete installieren können, ohne diesen Proxy zu verwenden, wenn er nicht verfügbar ist.
Ich habe bereits den Abschnitt " Gruppe erfassen" auf der Handbuchseite von gelesen apt.conf(5)
, konnte jedoch keine Option wie "Silent-Fail" finden.
Momentan sudo apt-get update
schlagen verwandte Befehle fehl, da keine Verbindung hergestellt werden konnte. Wie konfiguriere ich den Client so, dass der Proxy ignoriert wird, wenn er nicht verfügbar ist?
networking
apt
proxy
Lekensteyn
quelle
quelle
Antworten:
Es gibt eine undokumentierte Einstellung
Acquire::http::ProxyAutoDetect
. Diese Einstellung sollte den vollständigen Pfad zur Binärdatei enthalten und darf keine Argumente enthalten. Der Befehl sollte den zu verwendenden Proxy ausgeben (Beispiel:)http://10.0.0.1:8000
.Anhand der obigen Informationen könnte ein Skript erstellt werden, das vor dem Festlegen eines Proxys versucht, einen Proxy zu erstellen. Wenn kein Proxy verfügbar ist, sollte eine direkte Verbindung verwendet werden.
Nachfolgend finden Sie ein solches Proxy-Erkennungsskript, das die
http://10.0.0.1:8000/
undhttp://10.0.0.2:8000
-Proxies ausprobiert.Gib den Code ein in
/etc/apt/detect-http-proxy
:Jetzt muss APT für die Verwendung des obigen Proxy-Erkennungsskripts konfiguriert werden. Geben Sie daher den folgenden Code ein
/etc/apt/apt.conf.d/30detectproxy
:Ich habe auch den nächsten Code in die Datei eingefügt, um zu verhindern, dass ein Host als Proxy fungiert.
Standardmäßig gibt das Skript aus, ob ein Proxy verwendet wird oder nicht. Um dies zu deaktivieren, bearbeiten Sie
/etc/apt/detect-http-proxy
und wechseln Sieshow_proxy_messages=1
zushow_proxy_messages=0
.quelle
apt-cacher-ng::client
?if nc -w1 -z 192.168.0.2 3142; then printf http://192.168.0.2:3142; else printf DIRECT; fi
. Hoffen wir nur, dass das undokumentierte Feature entfernt wird :)i=192.168.0.2;nc -zw1 $i 3142&&echo http://$i:3142/||echo DIRECT
: pEs gibt jetzt einen offiziell unterstützten Weg, dies zu tun - mit der Option -
Acquire::http::Proxy-Auto-Detect
(sieheapt.conf
Manpage). Das Verhalten ähnelt dem alten undokumentiertenAcquire::http::ProxyAutoDetect
(beachten Sie das Vorhandensein / Fehlen von Bindestrichen in neuen / alten Konfigurationsoptionen), es ist weitgehend abwärtskompatibel, wurde jedoch erweitert ...Ich bin dabei, den Betreuern von apt einen Patch zur Verbesserung der Dokumentation zu übermitteln, aber da es unwahrscheinlich ist, dass dies zu einer Version von apt wird, die für eine Weile mit einer Distribution ausgeliefert wird, füge ich den Text von hinzu den vorgeschlagenen Patch hier:
Acquire::http::Proxy-Auto-Detect
kann verwendet werden, um einen externen Befehl anzugeben, mit dem der zu verwendende http-Proxy ermittelt wird. APT kann den Befehl mehrmals aufrufen und übergibt dem Befehl einen URI als ersten und einzigen Parameter. APT erwartet, dass der Befehl den Proxy ausgibt, der verwendet wird, um die betreffende URI auf seiner Standardausgabe als einzelne Zeile im Stil zu kontaktierenhttp://proxy:port/
, oder das Wort,DIRECT
wenn kein Proxy verwendet werden soll. Keine Ausgabe zeigt an, dass die allgemeinen Proxy-Einstellungen verwendet werden sollten.Beachten Sie, dass die automatische Erkennung für einen Host nicht verwendet wird, wenn über bereits eine hostspezifische Proxy-Konfiguration festgelegt wurde
Acquire::http::Proxy::HOST
.Um Interaktionen mit dem externen Befehl zu diagnostizieren, setzen
Debug::Acquire::http=yes
und / oder verwenden SieDebug::Acquire::https=yes
z. B. den-o
Befehlszeilenparameter.Beachten Sie, dass bei Verwendung einer Vorabversion von apt, Versionen 1.3 ~ exp2 bis 1.3, ein (wahrscheinlich durch 1.3.1 behobener) Fehler vorliegt, der apt veranlasst, den stderr des externen Befehls zusammen mit dem stdout zu analysieren .
quelle
/etc/apt/apt.conf.d/02proxy
:/usr/local/bin/apt-proxy-detect.sh
:Befehlszeile
nc
funktionieren (sudo apt-get install netcat
), wenn es fehlt.chmod +x /usr/local/bin/apt-proxy-detect.sh
Wie es funktioniert
Wenn es eine Verbindung zu einem Proxy herstellen kann, druckt es den Proxy aus, den APT verwendet. Wenn dies nicht möglich ist, werden DIRECT- und APT-Tucker normal ausgegeben.
Soße
quelle