實際應用中經常有這樣的狀況,一個單位中只有部分計算機直接鏈接外網,而內網中有十幾檯安裝有Ubuntu系統的計算機。這樣的狀況下,這些安裝Ubuntu系統電腦的平常更新或軟件安裝就成了一件「煩心」事,有沒有什麼好的方法能夠解決這個問題呢?
解決這個問題,能夠找一臺安裝了Ubuntu系統且有兩塊網卡的電腦(一塊鏈接外網,另外一塊鏈接內網),而後在該主機上安裝Apt-proxy代理服務器軟件便可(本文介紹基於Ubuntu Desktop 9.10。)。
Apt-proxy是一個專用於APT軟件包安裝的代理服務器軟件,它能夠在本地建立一個外部鏡像服務器的軟件庫的完整副本。內網的其它 機器只要訪問Apt-proxy代理服務器就能夠更新或安裝軟件。而且當客戶端請求的軟件包在Apt-proxy服務器不存在時,Apt-proxy自動 從外部鏡像服務器下載軟件包到本地,而後供客戶端下載和安裝。
1. 下載安裝Apt-proxy
默認狀態下,Ubuntu系統中沒有安裝Apt-proxy代理服務器軟件,不過Ubuntu的軟件源中已經包含了該軟件的安裝包。在菜單「系統→系 統管理」下找到「新立得軟件包管理」項並打開,點擊窗口工具欄上的「搜索」按鈕,在「搜索」對話框中輸入關鍵字「apt-proxy」,則搜索結果出如今 可安裝軟件包列表區中(如圖1所示)。標記「apt-proxy」軟件包並安裝後,將生成從外部鏡像服務器下載的安裝包的Apt-proxy緩存目錄 「/var/cache/apt-proxy」,該目錄初始時爲空。shell
2.配置Apt-proxy
Apt-proxy的配置文件爲「/etc/apt-proxy/apt-proxy-v2.conf」。
配置文件格式比較簡單,文件內容分爲若干段(項),以「[ ]」括起來的稱爲一個段,括號中的內容爲段名。如「[DEFAULT]」段表示該部份內容爲Apt-proxy的一些默認選項,用戶可根據須要進行設定。
好比,設定運行Apt-proxy的主機的IP地址、端口號(默認爲9999)、緩存下載的軟件包的路徑(默認爲「/var/cache/apt- proxy」)等。配置文件以兩個半角分號做爲註釋符號,前面加分號的行不起任何做用。在這裏咱們找到「[ubuntu]」這個段(因客戶端安裝的是 Ubuntu系統,如客戶端安裝Debian,則需對應找到「[debian]」段),其中有一項「backends」(「後端」即外部鏡像服務器),好比只填寫一個外部鏡像服務器,則服務器的地址直接跟在「backends」後面,不然轉到下一行填寫外部鏡像服務器的地址,每一個地址一行。 「[ubuntu]」段的設置相似圖2所示:
配置文件設定好後,保存退出並從新啓動Apt-proxy代理服務器使之生效。爲確認Apt-proxy代理服務器是否正常運行,咱們能夠用命令 「netstat –tnl」來查看端口「9999」是否處於偵聽狀態,如是則說明Apt-proxy工做正常,就能夠接受客戶端的鏈接請求了。
3.配置Apt-proxy客戶端
客戶端的工做主要是修改軟件源配置文件。打開一個GNOME終端窗口,進入「/etc/apt」目錄,輸入命令「sudo cp sources.list sources.list.bak」,建立「sources.list」文件的一個備份,而後打開 「sources.list」文件,在文件中可看到相似以下的行:
deb http://archive.ubuntu.com/ubuntu karmic main restricted universe multiverse
咱們所要作的修改就是將其中軟件鏡像服務器地址,如「
http://archive.ubuntu.com
」改成「
http://192.168.0.66:9999
」, 其中Apt-proxy代理服務器的地址爲「192.168.0.66」,代理端口號爲「9999」。編輯好客戶端的「sources.list」文件 後,輸入命令「sudo apt-get update」來更新數據源。如今,在客戶端不管使用APT相關命令或其它軟件包安裝管理器都可以正常進行軟件安裝或更新了。
補充
1.導入已下載的Deb軟件包
若是在使用Apt-proxy前,已經用Apt-get命令下載了大量的Deb軟件包,在安裝Apt-proxy後,能夠輸入命令「sudo apt-get update」或「sudo apt-proxy-import /var/cache/apt/archives」將這些軟件包導入到Apt-proxy的緩存目錄下,導入成功後,便可在Apt-proxy緩存目錄下 查看到導入的Deb包文件。
2.讓Apt-proxy也代理
有時,安裝Apt-proxy的計算機位於內網中,但若是單位網絡中有一臺公用的代理服務器,則能夠設定讓Apt-proxy經過公用的代理服務器鏈接上外部的鏡像服務器。要實現該功能,須要編輯Apt-proxy的配置文件「/etc/apt-proxy/apt-proxy-v2.conf」,在 文件中找到「[DEFAULT]」段,其中有一項「http_proxy」,默認狀況下該功能沒有啓用,啓用該功能需去掉該行前面的分號,並填寫上本地 HTTP代理服務器的地址、代理端口號。假設HTTP代理服務器地址爲192.168.0.88,代理端口號爲9989,則該項可設定爲 「http_proxy = 192.168.0.88 :9989」,設置完畢後,重啓Apt-proxy服務讓設置生效,而客戶端則不須要作任何改變。
小結ubuntu
Apt-proxy是一款很是實用的APT安裝代理服務器軟件,它能自動將下載的軟件包緩存到專用的目錄中,當客戶端請求的軟件包存在時,就從本地提交給客戶端,不須要鏈接到外部鏡像服務器下載,於是能夠在很大程度上減小下載帶寬和安裝時間,提升維護Ubuntu系統的效率,很是適用於一些局域網環境的軟件更新和安裝。後端