# clean http://localhost/downloads-distro.mongodb.org
因为我自定义了apt-mirror的数据目录,所以需要赋予 apt-mirror用户权限,否则同步不会正确运行:
复制代码
# sudo chown -R apt-mirror:apt-mirror /data/apt-mirror
运行第一次同步
确保你的基目录下磁盘空间足够,如上所配置,则至少保证150G的磁盘空间,建议200G以上,以后版本更新,添加软件源等会需要很多磁盘空间。
因为要下载135G的内容,时间比较漫长,建议切换到apt-mirror用户用以下命令放在后台运行
复制代码
# sudo su apt-mirror
# nohup /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log &
安装Nginx,配置HTTP访问
通过以上配置,已经可以在 /data/apt-mirror 目录下看到生成的几个数据文件。/data/apt-mirror/mirror下存放的就是软件镜像。但是如何向其他计算机发布这些数据呢?很明显通过HTTP服务可以做到这一点。我们通过使用Nginx将mirror目录下的内容通过HTTP协议发布。
安装Nginx
复制代码
# sudo apt-get install nginx=1.4.6-1ubuntu3.1
nginx配置文件位置: /etc/nginx/sites-enabled/default,将其替换为以下文件:
复制代码
server {
listen 80;
# 这里填写你的域名,填写localhost就直接通过IP地址访问
server_name localhost;
# 显示目录
autoindex on;
location / {
index index.html index.htm;
# 这里填写镜像保存位置
root /data/apt-mirror/mirror;
}
access_log /var/log/nginx/localhost.log;
}
更改完配置,先测试配置,如果测试通过,则重启nginx
复制代码
# sudo nginx -t
# sudo service nginx restart
此时访问 http://服务器IP 即可访问到你发布的镜像
配置定时同步
我们当然不能,每天自己手动同步镜像啦。我们需要配置apt-mirror每天定时同步,其实就是配置cron。
这里apt-mirror提供了cron模板文件,在/etc/cron.d/apt-mirror 中,取消最后一行的#注释即可生效:
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
以上设置每日4点同步一次
客户端配置
现在我们已经配置好了服务端,找个Ubuntu 14.04 64位的来测试一下
备份source.list
复制代码
# sudo mv /etc/apt/source.list /etc/apt/source.list.bak
新建/etc/apt/source.list, 写入以下内容(上述服务器DNS或IP 替换”自建源IP”)
复制代码
deb [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse










