Ubuntu的apt-get代理設置
升級到Ubuntu10.04後,發現apt-get的代理設置有改變了,在9.10以前使用“http_proxy”環境變量就可以令apt-get使用代理了
export http_proxy=http://127.0.0.1:8000 sudo apt-get update
然後在Ubuntu10.04下就無效了,看來apt-get已經被改成不使用這個環境變量了。
一陣鬱悶後,最後我發現在“首選項”->“網絡代理”那裏,多了個“System-wide”按鈕(我用的是英文環境,不知道中文被翻譯成怎樣,關閉窗口時也會提示你),在這裏設置後,apt-get確實可以使用代理了。
但是我依然鄙視這種改進,因爲我通常就是偶爾使用代理,更新幾個被牆掉的倉庫而已(如dropbox和tor),根本不想使用全局代理,本來用終端就能搞定的事,現在切換代理要點N次鼠標,真煩。
所以我研究了一下,發現那個代理設置修改了兩個文件,一個是“/etc/environment”,這個是系統的環境變量,裏面定義了“http_proxy”等代理環境變量。另一個是“/etc/apt/apt.conf”,這個就是apt的配置,內容如下
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”,然後“網絡代理”那裏重置回直接連接,以後使用
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