Ubuntu – apt-mirror

Loading

之前為了透過 PXE 安裝 Ubuntu server https://benjr.tw/977 怎麼試都不行,最後找到 apt-mirror 的方式可以解決.

APT-Mirror

apt-mirror 最主要的目的是為了將系統更新資料放在本地端硬碟中,其他區域網路的系統更新以及安裝檔皆可以透過本地端來進行安裝,不再需要透過網際網路的方式.
參考官方網頁 http://apt-mirror.github.com/ 的說明很簡單,只要3個步驟(適用於使用 apt 安裝的 Linux 版本,如 Debian 或是 Ubuntu 皆可以使用).

$ apt-get install apt-mirror
$ nano /etc/apt/mirror.list
$ sudo apt-mirror
[sudo] password for ben:
Downloading 48 index files using 20 threads…
Begin time: Wed Mar 13 18:00:24 2013
[20]… [19]… [18]… [17]… [16]… [15]… [14]… [13]… [12]… [11]… [10]… [9]… [8]… [7]… [6]… [5]… [4]… [3]… [2]… [1]… [0]…
End time: Wed Mar 13 18:00:41 2013
Proceed indexes: [PPP]

55.2 GiB will be downloaded into archive.
Downloading 43824 archive files using 20 threads…
Begin time: Wed Mar 13 18:00:49 2013
[20]… [19]… [18]… [17]… [16]… [15]… [14]… [13]… [12]… [11]… [10]… [9]… [8]… [7]… [6]… [5]… [4]… [3]… [2]… [1]… [0]…
End time: Thu Mar 14 00:02:40 2013

648.0 KiB in 21 files and 5 directories can be freed.
Run /var/spool/apt-mirror/var/clean.sh for this purpose.

Running the Post Mirror script …
(/var/spool/apt-mirror/var/postmirror.sh)

Post Mirror script has completed. See above output for any possible errors.

真的只要透過這三個步驟即可,不過要下載 55.2GB實在很大,其實主要是跟 /etc/apt/mirror.list 的設定內容有關,接下來說明 /etc/apt/mirror.list 的內容.設定檔可以區分為2大部分.

############# config ##################
#
set base_path /var/spool/apt-mirror
#
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch 
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
  • set base_path
    apt-mirror 存放資料的根目錄 /var/spool/apt-mirror

下面3項皆是相對應的資料夾位置

  • set mirror_path
    mirror 資料夾 $base_path/mirror
  • set skel_path
    skel 資料夾 $base_path/skel
  • set var_path
    var 資料夾 $base_path/var
  • set nthreads 20
    使用 20 個執行序同時進行下載
  • set _tilde 0
    這個不知道是做什麼用的

其他的都使用 # 代表暫時不使用這些參數,所以也沒特別注意這些參數的用法

  • # set cleanscript $var_path/clean.sh
  • # set defaultarch
  • # set postmirror_script $var_path/postmirror.sh
  • # set run_postmirror 0

接下來是下載點的設定,要下載的3個目錄分別為 precise , precise-security , precise-update (precise 代表 Ubuntu 12.04 版本名稱)

############# end config ##############
deb http://archive.ubuntu.com/ubuntu precise main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu precise-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu precise-proposed main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse
  • deb
    deb代表 i386 版本,要使用 amd64 請加入 deb-amd64 即可下載64位元的版本.而 source code 的參數為 deb-src
  • http://archive.ubuntu.com/ubuntu
    這是下載點的網址,預設皆為 Ubuntu 官方下載點.
  • precise
    precise代表 Ubuntu 版本名稱 12.04 ,其他 Ubuntu 版本名稱請參考 http://en.wikipedia.org/wiki/List_of_Ubuntu_releases
  • main restricted universe multiverse
    main restricted universe multiverse 皆是要下載的資料夾但為什麼是用這些資料夾其實我還不太清楚,不過就保留使用.

接下來是 source code 的下載,我這邊沒有下載,至於參數請參考剛剛的設定值

#deb-src http://archive.ubuntu.com/ubuntu precise main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu precise-security main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu precise-updates main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu precise-proposed main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu precise-backports main restricted universe multiverse

clean 的用途清除不需要的套件,但我還沒特別試過

clean http://archive.ubuntu.com/ubuntu

Apache (Http Server)

APT 更新的服務使用的協定是 http (Web , Port 80) ,在 Ubuntu 下相對的服務名成為 Apache2.

$ sudo apt-get install apache2

Apache2 預設的設定檔為 /etc/apache2/sites-enabled/000-default 預設的檔案目錄為 /var/www/html ,與我們放置套件不同,所以需要修改為置為 /var/spool/apt-mirror/

$ sudo nano /etc/apache2/sites-enabled/000-default
# DocumentRoot /var/www
DocumentRoot /var/spool/apt-mirror/

APT-Mirror 使用者端

最後修改使用端的 Apt-mirror 設定即可

$ sudo nano /etc/apt/sources.list
deb https://benjr.tw/ubuntu precise main restricted universe multiverse
deb https://benjr.tw/ubuntu precise-security main restricted universe multiverse
deb https://benjr.tw/ubuntu precise-updates main restricted universe multiverse

新增加你的 Apt-mirror source 即可大功告成

沒有解決問題,試試搜尋本站其他內容

3 thoughts on “Ubuntu – apt-mirror

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料