Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Is it possible to specify domain for which yum should bypass proxy configuration ? I'm afraid this is not possible...

I read that it was possible to use the environment variable HTTP_PROXY then NO_PROXY, is it the most elegant solution?

[EDIT]

I tried the solution with the environment variables:

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 uses proxy but the repos *.domain are not bypassed.

[WORKAROUND]

Using http://cntlm.sourceforge.net/ I can configure which domain should be ignore. But this wotks only with proxy that requires NTLM authentication...

share|improve this question

4 Answers 4

You can just specify it in the repo file. For example:

[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_
share|improve this answer

My solution involves setting up Privoxy, a light http proxy.

yum install privoxy

Add two forward clauses in /etc/privoxy/config :

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

And also disable privoxy's default actions (ensure no header got corrupted) : (@line 175 in RHEL5 privoxy config)

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

Then setting up http_proxy and ftp_proxy environment variable to privoxy's port:

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

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

yum install package1 package2

Note: if you have proxy lines in yum.conf, remove it, it would override the environment variable.

share|improve this answer

If I understand this question correctly the desired behaviour is

packages.centos.com gets pulled via a proxy.

packages.internal.lan goes direct without going via the proxy.

I've just arrived here having googled how to do this myself, and used the above info to achieve what I wanted, however I'm not sure if the above answer is complete.

To do this I used the following.

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

export no_proxy=internal.lan

yum install package1 package2

package1 got pulled from the internet via the proxy,

package2 got pulled from my local mirror not going through the proxy.

share|improve this answer

I have not been able to get this to work using environment variables as you describe here. Yum does support proxies itself, however, and you should be able to do something like this:

proxy=http://proxy:port

Into yum.conf and then adding

proxy=_none_

Into the repo definitions you don't want to access via the global proxy. This is detailed (albeit succinctly) in the yum.conf man page.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.