首先先装好了一个ubuntu server系统,装了个lighttpd服务器(个人喜好而已,其实真正使用时应该用apache)
#apt-get install lighttpd
然后是apt-mirror
#apt-get install apt-mirror
配置apt-mirror:
#pico /etc/apt/mirror.list
文件内容:
############# config ##################
#
# set base_path /var/spool/apt-mirror
#
# if you change the base path you must create the directories below with write privileges
#
# 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 nthreads 40
set _tilde 0
#
############# end config ##############
deb http://mirrors.163.com/ubuntu/ intrepid main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ intrepid-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ intrepid-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ intrepid-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ intrepid-backports main restricted universe multiverse
clean http://mirrors.163.com/ubuntu/
其实就是source.list的内容,加上一头一尾。
因为需求比较少,我就没加deb-src,可以节省不少空间。另外,默认是20线程的,我改成了40线程。
修改好了以后就可以建立镜像了:
#apt-mirror
根据你的网速,这个下载过程会很久(因为要下载的东西很多,我的配置文件需要下载26G左右的数据)。我等了6个小时左右完成了这个操作。
下载的文件保存在/var/spool/apt-mirror/ 下一步就是在lighttpd的web文件夹建立一个link过去就可以了
#ln -s /var/spool/apt-mirror/mirror/mirrors.163.com /var/www/ubuntu
这样,一个apt镜像就可以访问了,客户端只需要修改它的/etc/apt/source.list就可以了,替换一下服务器地址就行。
另外,还要建立一个定期任务,让apt-mirror自动更新:
修改/etc/cron.d/apt-mirror:
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
另外,/var/spool/apt-mirror/var/clean.sh可以清理掉一些没用的文件,每隔一段时间运行一下就行。