acquérir :: http :: proxy uniquement pour les référentiels spécifiés

9

Existe-t-il un moyen d'utiliser le proxy d'acquisition :: http :: pour certains référentiels?

Je suis dans un réseau qui a un serveur proxy. Donc, tout le monde doit mettre à jour /etc/apt/apt.conf en ajoutant les lignes comme

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

Tout fonctionne bien avec ça.

Mais maintenant, nous avons BEAUCOUP de machines Ubuntu et je veux faire un miroir Ubuntu local.

Nous devons donc effacer ces lignes proxy .... sauf pour les référentiels externes.

Alors, comment puis-je configurer quelque chose comme ça?

Dans les distributions RH, vous pouvez avoir un paramètre de proxy global pour yum, puis utiliser des paramètres de proxy individuels pour chaque référentiel. Mais je n'ai pas trouvé quelque chose de similaire sous Ubuntu.

Gustavo Berman
la source

Réponses:

10

Enfin, je l'ai fait fonctionner comme je le voulais.

Pour chaque miroir local, vous devez ajouter une ligne comme celle-ci:

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

Donc, dans /etc/apt/apt.conf, j'ai quelque chose comme:

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

De cette façon, je peux utiliser notre proxy Web pour les référentiels externes / externes et pouvoir utiliser notre miroir de référentiel local sans proxy Web.

Gustavo Berman
la source
2
Cela fonctionne parfaitement, mais où est la documentation pour cela ??
chronospoon
1
@chronospoon, je pense que les auteurs aptes pensent que vous êtes un maître de Python et sauront exactement comment cette partie fonctionne. 8-)
Alexis Wilke
2
L'inverse peut être comme ceci: Acquire::http::proxy::HOST_NAME_TO_BE_PROXIED "http://yourproxyaddress:proxyport";par exemple:Acquire::http::proxy::download.docker.com "http://1.2.3.4:1234";
Massood Khaari
-1

C'est ainsi que je résous ce problème.

Supprimez toutes les lignes d'acquisition dans apt.conf et ramenez-la à son état d'origine

Maintenant, exportez votre http_proxy en tant que

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

où xyz.org est votre nom de domaine local

Maintenant, exécutez apt-get comme suit.

sudo -E apt-get update

L'option -E rend la variable http_proxy disponible pour apt-get. C'est ça. Le proxy est désormais utilisé pour toutes les connexions externes et non pour le réseau interne.

Hashken
la source
1
Cette méthode n'est pas compatible avec le reste du système.
Gustavo Berman du