Erwerben Sie :: http :: proxy nur für bestimmte Repositorys

9

Gibt es eine Möglichkeit, Ihren Proxy :: http :: für einige Repositorys zu verwenden?

Ich bin in einem Netzwerk mit einem Proxyserver. Also muss jeder /etc/apt/apt.conf aktualisieren und die Zeilen wie hinzufügen

Acquire::http::Proxy "http://yourproxyaddress:proxyport";
Acquire::https::Proxy "http://yourproxyaddress:proxyport";
Acquire::ftp::Proxy "http://yourproxyaddress:proxyport";
Acquire::socks::Proxy "http://yourproxyaddress:proxyport";

Damit funktioniert alles in Ordnung.

Aber jetzt haben wir eine Menge Ubuntu-Maschinen und ich möchte einen lokalen Ubuntu-Spiegel machen.

Wir sollten also diese Proxy-Zeilen löschen ... mit Ausnahme externer Repositorys.

Wie konfiguriere ich so etwas?

In RH-basierten Distributionen können Sie eine globale Proxy-Einstellung für yum festlegen und dann für jedes Repository individuelle Proxy-Einstellungen verwenden. Habe aber unter Ubuntu nichts Ähnliches gefunden.

Gustavo Berman
quelle

Antworten:

10

Endlich habe ich es zum Laufen gebracht, wie ich wollte.

Für jeden lokalen Spiegel müssen Sie eine Zeile wie die folgende hinzufügen:

Acquire::http::proxy::local.mirror.address "DIRECT";

Also habe ich in /etc/apt/apt.conf so etwas wie:

Acquire::http::Proxy "http://yourproxyaddress:proxyport";
Acquire::http::proxy::local.mirror.address "DIRECT";
Acquire::https::Proxy "http://yourproxyaddress:proxyport";
Acquire::ftp::Proxy "http://yourproxyaddress:proxyport";
Acquire::socks::Proxy "http://yourproxyaddress:proxyport";

Auf diese Weise kann ich unseren Webproxy für externe / externe Repositorys verwenden und unseren lokalen Repository-Spiegel ohne Webproxy verwenden.

Gustavo Berman
quelle
2
Das funktioniert perfekt, aber wo ist die Dokumentation dafür?
Chronospoon
1
@chronospoon, ich denke, die passenden Autoren denken, Sie sind ein Meister bei Python und werden genau wissen, wie dieser Teil funktioniert. 8-)
Alexis Wilke
2
Der umgekehrte Weg könnte so sein: Acquire::http::proxy::HOST_NAME_TO_BE_PROXIED "http://yourproxyaddress:proxyport";zB:Acquire::http::proxy::download.docker.com "http://1.2.3.4:1234";
Massood Khaari
-1

So löse ich dieses Problem.

Entfernen Sie alle Erfassungszeilen in apt.conf und bringen Sie sie wieder in ihren ursprünglichen Zustand

Exportieren Sie nun Ihren http_proxy als

export http_proxy=http://username:password@host:port 
export no_proxy=.xyz.org

Dabei ist xyz.org Ihr lokaler Domainname

Führen Sie nun endlich apt-get wie folgt aus.

sudo -E apt-get update

Die Option -E stellt die Variable http_proxy für apt-get zur Verfügung. Das ist es. Der Proxy wird jetzt für alle externen Verbindungen und nicht für das interne Netzwerk verwendet.

Hashken
quelle
1
Diese Methode ist nicht mit dem Rest des Systems kompatibel.
Gustavo Berman