Setting proxy for apt from terminal

  • Possible Duplicate:
    apt-get does not work with proxy

    I have tried changing my proxy settings in a terminal as:

    export HTTP_PROXY=http://10.1.3.1:8080
    

    and

    export http_proxy=http://10.1.3.1:8080
    

    but when I try to install a new package or update apt-get, apt-get starts displaying messages from which it seems it is trying to connect to a previously set proxy:

    sudo apt-get update  
    0% [Connecting to 10.1.2.2 (10.1.2.2)] [Connecting to 10.1.2.2 (10.1.2.2)
    

    I have tried setting the proxy via bashrc file but that din work either. As far as I remember 10.1.2.2 was set using GNOME GUI but I don't have access to the GUI right now so I am trying to set it from terminal.

    you can add proxy in /etc/apt/apt.conf

    @piyush Will that not only allow apt-get to access the web though..? If he wants to be able to access web with anything else he needs to enter it into /etc/bash.bashrc

    true, I suggested that seeing him try to do `sudo apt-get update`

    `sudo -E apt-get WHATEVER` works in my case (given that `http_proxy` is already `export`ed as an environmental variable).

    Just a general tip -- when doing these updates, you may need to log out and back in before they start working. That's what I had to do.

  • Usman

    Usman Correct answer

    8 years ago

    Okay just solved it. Adding following line to /etc/apt/apt.conf has solved the problem: Acquire::http::proxy "http://10.1.3.1:8080/";

    If file does not exist, create it. Do not confuse it with apt.conf.d directory.

    Great. The reason your manual export failed to affect apt-get is because sudo ignores that environment variable by default (i.e. it doesn't pass it on to the command). For one-off runs, you could do `sudo env http_proxy=http://10.1.3.1:8080 apt-get update`. Otherwise, you could configure sudo to allow http_proxy to fall through.

    also if proxy using authentication then provide the details as `sudo env http_proxy=http://:@10.1.3.1:8080 apt-get update`

  • The file:

    /etc/environment
    

    Is the correct place to specify system-wide environment variables that should be available to all processes. See https://help.ubuntu.com/community/EnvironmentVariables for details. Note that this is not a script file but a configuration file.

    If you want this for the specified command only, use (as root):

    http_proxy=http://10.1.3.1:8080 apt-get update
    

    Great! Saved much of my time :)

    It is so good. thank you. It is just for temporary usage, Isn't it?

    Alas still not yet for Firefox 37.0.2.

  • Edit your:

    gedit /etc/profile
    

    Enter the details in this format.

    export http_proxy=http://username:[email protected]:port/ 
    export ftp_proxy=http://username:[email protected]:port/
    

    Then run the

    sudo apt-get update
    

    That should do it for you.

    As stated above you can enter the proxy into apt.conf (Piyush Credit)

    I have mentioned in my question that I tried setting the proxy via bashrc file and then tried `source /etc/bash.bashrc` but apt-get is still trying to access the old repository.

    Besides that, `/etc/bash.bashrc` is the wrong place to set environment variables as it will only affect bash run interactively. Environment variables should be set in `/etc/environment` or `/etc/profile`.

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM