使用apt-mirror搭建本地apt源

在构建大型项目(比如sonic)的时候,经常需要安装大量的deb依赖程序,这个过程非常慢,可以通过搭建本地apt源来加速编译。

安装apt-mirror

sudo apt-get install apt-mirror

修改apt-mirror配置文件

sudo vim /etc/apt/mirror.list

参考以下配置文件:

############# config ##################
# 设置镜像目标位置,即下载下来的文件存储位置,一般在120G左右,建议单独使用一个分区进行存放。
set base_path    /var/lib/repos/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
# 指定具体CPU架构,可以减少下载的文件数
set defaultarch amd64
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############
#我们需要镜像的apt源,如果不需要源码的话,可以屏蔽掉deb-src
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ jessie main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ jessie main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security jessie/updates main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security jessie/updates main contrib non-free
#deb [arch=amd64] http://13.75.127.55/repos/repos-dev/ jessie main   #注意这种格式是错误的
#使用如下格式
deb http://13.75.127.55/repos/repos-dev/ jessie main 

开始同步

执行

sudo -i   #切换到root用户 
nohup /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log &
#也可以启动定时执行,这里apt-mirror提供了cron模板文件,在/etc/cron.d/apt-mirror 中,取消最后一行的#注释即可生效:
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
#以上设置每日4点同步一次。

然后就开始进行同步了,同步的镜像文件目录为:

/var/lib/repos/apt-mirror/mirror/mirrors.tuna.tsinghua.edu.cn/debian/

当然如果增加了其他的源,在/var/lib/repos/apt-mirror/mirror目录下还有其他的地址为名的目录。例如:

root@debian:/var/lib/repos/apt_mirror/mirror/mirrors.tuna.tsinghua.edu.cn# ls
debian  debian-security
root@debian:/var/lib/repos/apt_mirror/mirror/mirrors.tuna.tsinghua.edu.cn# 

安装apache2

sudo apt-get install apache2

由于Apache2的默认网页文件目录位于/var/www/html,因此,可以做个软链接

ln -s /var/lib/repos/apt-mirror/mirror/mirrors.tuna.tsinghua.edu.cn/debian /var/www/html/debian
ln -s /var/lib/repos/apt-mirror/mirror/mirrors.tuna.tsinghua.edu.cn/debian-security /var/www/html/debian-security

然后就可以通过如下地址访问了。

http://[host]:[port]/debian #ip和port是自己本机的,其中端口默认为80。在测试时可能遇到打不开的情况,查看下本机和云平台的防火墙规则是否打开相关端口或者selinux的问题。

如果是在本机访问,可以在/etc/apt/sources.list添加配置如下:

deb file:///var/www/html/debian jessie main contrib non-free  #注意file:///是三个斜杆

配置好后,重启apache2服务

客户端访问

1、在客户端的/etc/apt/sources.list添加配置如下:

deb https://[ip]:[port]/debian/ jessie main contrib non-free
deb-src https://[ip]:[port]/debian/ jessie main contrib non-free
deb https://[ip]:[port]/debian-security jessie/updates main contrib non-free
deb-src https://[ip]:[port]/debian-security jessie/updates main contrib non-free
deb [arch=amd64] http://[ip]:[port]/repos/repos-dev/ jessie main 

2、更新apt-get源

sudo apt-get update

3.可以在服务器上查看/var/log/apache2/access.log来查看本地apt访问情况。

你可能感兴趣的:(ubuntu,linux,docker)