搭建自有Ubuntu源的原因有很多
节省外网带宽
提前下载,缓解国外源下载缓慢
私有定制软件包发布
本文测试环境
ubuntu 14.04(LTS) 64位
apt-mirror 版本 0.5.1-1
nginx 版本 1.4.6-1ubuntu3.1
安装apt-mirror
配置apt-mirror
apt-mirror的配置文件位置为 /etc/apt/mirror.list
根据注释修改相应内容,一般只需要修改 base_path和更改、添加软件源。以下配置文件我只添加了Ubuntu 14.04和MongoDB的软件源,你可以根据你的需要添加Ubuntu其他版本软件源。
运行第一次同步
确保你的基目录下磁盘空间足够,如上所配置,则至少保证150G的磁盘空间,建议200G以上,以后版本更新,添加软件源等会需要很多磁盘空间。
因为要下载135G的内容,时间比较漫长,建议切换到apt-mirror用户用以下命令放在后台运行
安装Nginx,配置HTTP访问
通过以上配置,已经可以在 /data/apt-mirror 目录下看到生成的几个数据文件。/data/apt-mirror/mirror下存放的就是软件镜像。但是如何向其他计算机发布这些数据呢?很明显通过HTTP服务可以做到这一点。我们通过使用Nginx将mirror目录下的内容通过HTTP协议发布。
安装Nginx
更改完配置,先测试配置,如果测试通过,则重启nginx
配置定时同步
我们当然不能,每天自己手动同步镜像啦。我们需要配置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
deb-src [arch=amd64] http://自建源IP/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse<