2,199 瀏覽數

Ubuntu – apt-mirror

之前為了透過 PXE 安裝 Ubuntu http://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 /var/spool/apt-mirror
    set base_path : apt-mirror 存放資料的根目錄

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

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

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

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

接下來式下載點的設定,可以分為3種下載資料

############# 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 皆是要下載的資料夾但為什麼是用這些資料夾其實我還不太清楚,不過就保留使用.
  • 其他要下載的目錄有
    precise
    precise-security
    precise-update

接下來是 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)

更新的服務使用的是 http 在 Linux 下使用相對的服務名成為 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 http://benjr.tw/ubuntu precise main restricted universe multiverse
deb http://benjr.tw/ubuntu precise-security main restricted universe multiverse
deb http://benjr.tw/ubuntu precise-updates main restricted universe multiverse

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

3 個網友的想法 “Ubuntu – apt-mirror

  1. 自動參照通知: Ubuntu Server 支援 ARM 處理器 – Benjr.tw

  2. 自動參照通知: 就是要上網 – 透過手機分享多人上網 – Benjr.tw

  3. 自動參照通知: Install Ubuntu 12.10 with PXE | Benjr.tw

發表迴響