Come specificare che Yum non dovrebbe usare il proxy per un dominio specifico


12

È possibile specificare il dominio per il quale yum dovrebbe bypassare la configurazione proxy? Temo che questo non sia possibile ...

Ho letto che era possibile usare la variabile d'ambiente HTTP_PROXYallora NO_PROXY, è la soluzione più elegante?

[MODIFICARE]

Ho provato la soluzione con le variabili di ambiente:

export HTTP_PROXY=http://user:pass@host:port
export http_proxy=http://user:pass@host:port
export no_proxy=.domain
export NO_PROXY=.domain

Yum usa proxy ma i repos * .domain non vengono bypassati.

[SOLUZIONE]

Utilizzando http://cntlm.sourceforge.net/ posso configurare quale dominio dovrebbe essere ignorato. Ma questo wotks solo con proxy che richiede l'autenticazione NTLM ...

Risposte:


26

Non sono stato in grado di farlo funzionare usando le variabili d'ambiente come descrivi qui. Yum supporta i proxy stessi, tuttavia, e dovresti essere in grado di fare qualcosa del genere:

proxy=http://proxy:port

In yum.confe poi aggiungendo

proxy=_none_

Nelle definizioni dei repository a cui non si desidera accedere tramite il proxy globale. Questo è dettagliato (anche se in modo succinto) nella pagina man yum.conf.


Riuscito, finalmente. Grazie! Non voglio passare di nuovo attraverso tutti i padroni di casa dove l'ho fatto. Ma sarebbe anche possibile aggiungere il proxy direttamente a questi file di repository dove è necessario (ad esempio tutti i repository con server di pacchetti esterni, in contrasto con i file di repository che utilizzano gestori di pacchetti interni che non richiedono proxy)
erikbwork

1
proxy=_none_Fantastico, grazie. Quella è una nave carica di salsa fantastica. Potrei votare due volte se potessi :)
Scottie H,

@erikbwork Ho appena aggiunto un proxy=http://proxy:portal mio file .repo e ha funzionato. È quello che stai chiedendo?
Scottie H,

4

Se capisco correttamente questa domanda, il comportamento desiderato è

pacchetti.centos.com viene estratto tramite un proxy.

pacchetti.internal.lan va diretto senza passare attraverso il proxy.

Sono appena arrivato qui dopo aver cercato su Google come fare da solo, e ho usato le informazioni di cui sopra per ottenere ciò che volevo, tuttavia non sono sicuro che la risposta di cui sopra sia completa.

Per fare ciò ho usato quanto segue.

export HTTP_PROXY=http://myproxy.internal.lan:port

export no_proxy=internal.lan

yum install package1 package2

package1 è stato estratto da Internet tramite il proxy,

package2 è stato estratto dal mio mirror locale non passando attraverso il proxy.


3

La mia soluzione prevede l'installazione di Privoxy, un proxy http leggero.

yum installa privoxy

Aggiungi due clausole forward in / etc / privoxy / config:

 forward / myproxy.internal.lan:3128
 forward .internal.lan .

E disabilita anche le azioni predefinite di privoxy (assicurati che nessuna intestazione sia corrotta): (@line 175 in RHEL5 privoxy config)

#actionsfile standard  # Internal purpose, recommended
#actionsfile default   # Main actions file
#actionsfile user      # User customizations

Quindi impostare la variabile d'ambiente http_proxy e ftp_proxy sulla porta di privoxy:

dichiarare -x http_proxy = http://127.0.0.1:8118

dichiarare -x ftp_proxy = http://127.0.0.1:8118

yum installa pacchetto1 pacchetto2

Nota: se si dispone di linee proxy in yum.conf, rimuoverlo, sovrascriverà la variabile di ambiente.


Ero alla ricerca di modi per autorizzare gli host da privoxy e ho la mia risposta qui :)
ahmadali shafiee

2

Puoi semplicemente specificarlo nel file repo. Per esempio:

[hduser@n0 cloudera-manager-installer]$ cat /etc/yum.repos.d/cloudera-cdh4.repo  
[cloudera-cdh4]  
name=Cloudera's Distribution for Hadoop, Version 4  
baseurl=http://"yourhost"/cdh4/  
gpgcheck = 0
enabled=1
proxy=_none_

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.