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