之前為了透過 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”