apt-mirror工具能够将官方镜像下载到本地,并保证目录结构与其一致,但是不能对镜像仓库进行修改。假如想要下载并修改镜像仓库,需要使用reprepro工具。
【安装】
首先安装apt-mirror工具
sudo apt-get install apt-mirror
安装完成后可以通过 man apt-mirror 查看一下该工具的文档,比较重要的是关于一些文件和目录的介绍,例如:
/etc/apt/mirror.list : 主配置文件
/etc/cron.d/apt-mirror : cron定时自动执行的配置文件
/var/spool/apt-mirror/mirror : mirror默认存放的位置
/var/spool/apt-mirror/var : 日志文件、脚本存放位置。
【配置】
修改/etc/apt/mirror.list配置文件,配置项目的含义非常简单清楚,修改内容如下:
############# 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 <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############
deb http://packages.linuxmint.com olivia main upstream import
deb http://archive.Ubuntu.com/ubuntu raring main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu raring-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ raring-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu/ raring partner
deb-src http://packages.linuxmint.com olivia main upstream import
deb-src http://archive.ubuntu.com/ubuntu raring main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu raring-updates main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu/ raring-security main restricted universe multiverse
deb-src http://archive.canonical.com/ubuntu/ raring partner
该文件是下载镜像时的配置信息,基本按默认的就可以,后面添加用户想要下载的官方源地址信息。其中默认下载的事与用户操作系统一致的32或64位软件包,但是可以在deb后面添加i386就指定下载32位, 添加amd64就指定下载64位。修改完成后执行命令sudo apt-mirror。该命令会启动20个线程去下面的源地址下载,命令执行完成后,/var/spool/apt-mirror目录下就有了所有需要的deb包、源码包和相应的apt配置文件。当需要跟官方同步更新的时候,再次执行apt-mirror,就可以更新下载。也可以配置cron来定时自动进行更新。
【配置apache服务】
使用apt-mirror完成官方源下载后,需要提供网络服务才能使用,由于apache2服务器服务于静态文件时非常高效稳定,因此选择apache2服务器。安装apache2后,默认使用/var/www/目录作为Web的根目录,将源mirror所在位置/var/spool/apt-mirror/mirror/xxxxxx 在/var/www/中创建软链接即可被访问。