Linux之apt源同步工具apt-mirror
Linux之apt源同步工具apt-mirror
概述
最近有个需求,需要将源中所有的包同步到本地进行分析,于是接触到了本文的主角 – apt-mirror
.
apt-mirror简介
A small and efficient tool that lets you mirror a part of or the whole
Debian GNU/Linux distribution or any other apt sources.Main features:
- It uses a config similar to APT’s sources.list
- It’s fully pool compliant
- It supports multithreaded downloading
- It supports multiple architectures at the same time
- It can automatically remove unneeded files
- It works well on an overloaded Internet connection
- It never produces an inconsistent mirror including while mirroring
- It works on all POSIX compliant systems with Perl and wget
apt-mirror是一个小型且高效的apt源同步工具,可以让你镜像部分或整个 Debian GNU/Linux 发行版或任何其他 apt 源。
它有以下主要特性:
- 它使用类似于 APT 的 sources.list 配置文件
- 完全符合 pool 规范
- 支持多线程下载
- 支持同时处理多个架构
- 可以自动删除不需要的文件
- 在负载过重的互联网连接上也能很好地工作
- 在镜像过程中永远不会产生不一致的镜像
- 在所有符合 POSIX 标准并安装了 Perl 和 wget 的系统上都能正常工作
apt-mirror的使用
安装
sudo apt install apt-mirror
按需修改配置
apt-mirror uses /etc/apt/mirror.list as a configuration file.
apt-mirror
使用 /etc/apt/mirror.list
作为配置文件。mirror.list
里面主要有两大块:
- 相关参数配置
- 需要同步的源地址
按需修改需要同步的源地址和配置(比如同步路径,软件包架构,下载线程等):
############# config ##################
#
set base_path /data/apt-source
#软件包存放路径
set mirror_path $base_path/mirror
#临时索引下载文件目录,也就是存放软件仓库的dists目录下的文件
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://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu bionic-proposed main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu bionic-proposed main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse
#clean http://archive.ubuntu.com/ubuntu
运行
直接在终端执行apt-mirror即可开始同步相应的软件包,因为一般来说软件包比较多,所以需要准备好充足的存储空间,至少几百G,保证充足的网络带宽和网络稳定性,剩下的就是耐心等待了。
sudo apt-mirror
下载途中如果中途断开只需要删除apt-mirror.lock
文件即可:
sudo rm /data/apt-souce/var/apt-mirror.lock
其他
如果需要制作成内网源,只需要安装web服务器,比如 apache
, 然后指向刚刚同步的源即可,这里不再赘述了。
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DD'Notes!
评论