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.

how can I set apt-get to work behind proxy?

share|improve this question
add comment

3 Answers 3

up vote 5 down vote accepted
http_proxy="http://host:port" apt-get something

should work.

If you require authentication, try

http_proxy="http://user:pass@host:port" apt-get something

And if you want this to be permenant, you should probably set the http_proxy (and ftp_proxy?) variables in your ~/.bashrc so that all of your proxy-capable applications will work in the future, e.g. 'wget'.

share|improve this answer
2  
one more thing to note is that if the password contains '@' then replace it with '%40' (without quotes),else it will not work –  dotslash Nov 6 '11 at 9:16
add comment

in /etc/apt/apt.conf, add the line:

Acquire::http::Proxy "http://MYDOMAIN\MYNAME:MYPASS@MY.PROXY.COM:MYPORT"

From: http://ubuntuforums.org/showthread.php?t=96802

(Note: completely stolen from this answer to my similar question on SF. Cred to Grizzly)

share|improve this answer
    
The line needs to end with a ; –  Verma Dec 19 '13 at 10:57
add comment

A proxy is specified by setting the http_proxy, ftp_proxy and all_proxy environment variables, either locally (e.g. in ~/.bashrc) or globally (e.g. in /etc/bash.bashrc). These settings are honored by virtually all net-software packages (like apt-get, wget, curl etc.):

# HTTP proxy without authentification
export http_proxy="http://host:port"
# HTTP proxy with authentification
export http_proxy="http://user:pass@host:port"

However, setting them this way does not help when running sudo apt-get ... - and that is due to this line in /etc/sudoers:

Defaults env_reset

This line resets all environment variables when using sudo, for security reasons. In order to keep the values of http_proxy etc. in a sudo invocation, you can specify exceptions to env_reset via env_keep:

# Exception specific to the command apt-get
Defaults!/usr/bin/apt-get env_keep="http_proxy https_proxy ftp_proxy"
# Exception specific to the user joe
Defaults:joe env_keep="http_proxy https_proxy ftp_proxy"

This way, you get apt-get to honor the global setting for http_proxy, instead of duplicating the setting for apt-get in some arcane apt-specific config file.

share|improve this answer
    
This is the real answer in my opinion, because you will all the time use sudo apt-get ... for anything. So without this entry in /etc/sudoers, it will not work. –  mliebelt Dec 24 '13 at 8:42
add comment

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.