1. 程式人生 > >Ubuntu的apt-get代理設定

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