nabyć :: http :: proxy tylko dla określonych repozytoriów

9

Czy istnieje sposób na użycie funkcji acquire :: http :: proxy dla niektórych repozytoriów?

Jestem w sieci, która ma serwer proxy. Więc każdy musi zaktualizować /etc/apt/apt.conf dodając wiersze jak

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

Wszystko działa z tym dobrze.

Ale teraz mamy wiele maszyn Ubuntu i chcę zrobić lokalne lustro Ubuntu.

Powinniśmy więc usunąć te linie proxy ... z wyjątkiem zewnętrznych repozytoriów.

Jak więc skonfigurować coś takiego?

W dystrybucjach opartych na RH możesz mieć globalne ustawienie proxy dla yum, a następnie użyć indywidualnych ustawień proxy dla każdego repozytorium. Ale nie znalazłem czegoś podobnego w Ubuntu.

Gustavo Berman
źródło

Odpowiedzi:

10

W końcu działałem tak, jak chciałem.

Do każdego lokalnego lustra musisz dodać taką linię:

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

Tak więc w /etc/apt/apt.conf mam coś takiego:

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

W ten sposób mogę korzystać z naszego internetowego serwera proxy do zewnętrznych / zewnętrznych repozytoriów i móc korzystać z naszego lokalnego serwera lustrzanego repozytorium bez internetowego serwera proxy.

Gustavo Berman
źródło
2
Działa to doskonale, ale gdzie jest dokumentacja?
chronospoon
1
@chronospoon, myślę, że autorzy apt uważają, że jesteś mistrzem w Pythonie i będą dokładnie wiedzieć, jak działa ta część. 8-)
Alexis Wilke,
2
Acquire::http::proxy::HOST_NAME_TO_BE_PROXIED "http://yourproxyaddress:proxyport";Acquire::http::proxy::download.docker.com "http://1.2.3.4:1234";
Odwrotnie
-1

W ten sposób rozwiązuję ten problem.

Usuń wszystkie wiersze pobierania w apt.conf i przywróć go do pierwotnego stanu

Teraz wyeksportuj swój http_proxy jako

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

gdzie xyz.org to nazwa Twojej lokalnej domeny

Teraz w końcu uruchom apt-get w następujący sposób.

sudo -E apt-get update

Opcja -E udostępnia zmienną http_proxy apt-get. Otóż ​​to. Serwer proxy jest teraz używany dla wszystkich połączeń zewnętrznych, a nie dla sieci wewnętrznej.

Hashken
źródło
1
Ta metoda nie jest kompatybilna z resztą systemu.
Gustavo Berman