apt-mirrorを使用してネットワークインストール可能なレポジトリを作成しようとしたら、うまくいかずにハマったのでここにまとめておきます。
Ubuntu Preciseのミラーレポジトリを作成します。レポジトリを構築するサーバがrepository.kazu634.lanで名前解決できることが前提です。
例えば仮想マシン上に Ubuntu をインストールするとします。普通にインストールを行うと、jp.archive.ubuntu.org などのレポジトリにアクセスしに行くため、ネットワーク的な負荷がかかります。仮にこれがローカルネットワーク内部で完結すれば、ネットワーク的な負荷がかなり軽減することになります。後、インストールに必要となる時間も短縮出来ます。
Windowsでいうところの、WSUSサーバをイントラネット内部に設置するイメージですかねー
apt-mirror
を使います。
1
| # aptitude install apt-mirror
|
設定ファイルは/etc/apt/mirror.list
です。debian-installの設定を追加する必要があります。私の設定はこのようになりました:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| ############# config ##################
#
set base_path /share/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 <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# 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
# debian installer here
deb http://archive.ubuntu.com/ubuntu precise main/debian-installer restricted/debian-installer
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 http://archive.ubuntu.com/ubuntu
|
私の場合デフォルトのミラー作成先 (/var/spool/apt-mirror
) から変更 (/share/apt-mirror
)したかったため、以下のコマンドを実行しています。
1
| # sudo cp -pr /var/spool/apt-mirror/ /share/
|
レポジトリを公開するためには、HTTPでインデックスを表示できなければいけません。私は以下の設定を実施しています:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| server {
listen 80;
root /share/apt-mirror/mirror/archive.ubuntu.com;
index index.html index.htm;
server_name repository.kazu634.lan;
access_log /var/log/nginx/repository.kazu634.lan.access.log;
error_log /var/log/nginx/repository.kazu634.lan.error.log;
autoindex on;
gzip on;
}
|
autoindexをonにするのがポイントです。
以下の設定ファイルを更新します。コメントアウトを外して、cronの書式で好きな頻度で実行できるようにしてください。
1
2
3
4
| #
# Regular cron jobs for the apt-mirror package
#
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
|