url: http://qixinglu.com/post/ubuntu_apt-get_proxy_setup.htmlhtml
升级到 Ubuntu10.04 后,发现 apt-get 的代理设置有改变了,在 9.10 之前使用 http_proxy
环境变量就能够令 apt-get 使用代理了ubuntu
export http_proxy=http://127.0.0.1:8000 sudo apt-get update
而后在 Ubuntu10.04 下就无效了,看来 apt-get 已经被改为不使用这个环境变量了。网络
一阵郁闷后,最后我发如今 首选项 --> 网络代理 那里,多了个「System-wide」按钮(我用的是英文环境,不知道中文被翻译成怎样,关闭窗口时也会提示你),在这里设置后,apt-get 确实能够使用代理了。ide
可是我依然鄙视这种改进,由于我一般就是偶尔使用代理,更新几个被墙掉的仓库而已(如 Dropbox 和 Tor),根本不想使用全局代理,原本用终端就能搞定的事,如今切换代理要点 n 次鼠标,真烦。post
因此我研究了一下,发现那个代理设置修改了两个文件,一个是 /etc/environment,这个是系统的环境变量,里面定义了 http_proxy
等代理环境变量。另外一个是 /etc/apt/apt.conf,这个就是 apt 的配置,内容以下ui
Acquire::http::proxy "http://127.0.0.1:8000/"; Acquire::ftp::proxy "ftp://127.0.0.1:8000/"; Acquire::https::proxy "https://127.0.0.1:8000/";
很明显的代理设置代码,我看了下 apt-get 的手册,发现能够用 -c
选项来指定使用配置文件,也就是复制一份为 ~/apt_proxy.conf,而后「网络代理」那里重置回直接链接,之后使用url
sudo apt-get -c ~/apt_proxy.conf update
就能够使用代理了,apt-get 也有一个 -o
选项,直接跟 apt-get 的设置变量,就不用指定配置文件了,好比翻译
sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8000/" update