服务器的版本是ubuntu 22.04其他的需要自己研究了Ubuntu的镜像源在2023-2-8占用磁盘为:310G左右部署的服务器使用了341G图片直接开始1.安装apt-mirror和nginxapt-get install apt-mirror nginx2.修改apt-mirror配置#记得修改版号vi /etc/apt/mirror.list############# config ######### 因为:apt-mirror无法下载cnf文件夹(apt-mirror软件最后一次更新在2017年,而ubuntu20.04在2020年才发布,软件没有对系统做适配,就是bug)add_url_to_download "/i18n/Index" );如果不想编辑就看看这个https://github.com/Stifler6996/apt-mirror4.同步#前台同步apt-mirror#后台同步nohup apt-mirror &4.1定时同步crontab -e0 0 * * * apt-mirror #每天23点执行一次apt-mirror,定时向上游更新镜像站文件0 22 * * * /var/spool/apt-mirror
debian官方提供了脚本ftpsync来搭建源镜像,而 apt-mirror 是一个更简单便捷的源镜像搭建工具。 安装 apt-mirror sudo apt-get install apt-mirror 配置文件/etc/apt/mirror.list只要修改很少的地方,大部分使用默认值即可。 ############# config ################## # # set base_path /var/spool/apt-mirror # # set mirror_path # m h dom mon dow command 0 0 * * * apt-mirror 发布镜像服务 使用nginx发布源镜像 将 apt-mirror 的镜像目录链接到/var/www/mirror # ln -sf /var/spool/apt-mirror/mirror/ftp.cn.debian.org/ mirror 然后将nginx默认主机default(或者单独虚拟主机)的根目录设置为
service/ubuntu /service/ubuntu/mirro /service/ubuntu/skel /service/ubuntu/va 配置apt-mirror ubuntu hardy-proposed main restricted universe multiverse #当某些软件包在服务器端进行了升级,或者服务器端不再需要这些软件包时,我们使用了 apt-mirror
安装 对应的软件包 $ sudo apt-get install apache2 $ sudo apt-get install apt-mirror 1.2. 执行 apt-mirror 整个repo非常大,我们可以对mirror.list做一些修改,只选择一部分的软件包。 如下所示: deb http://archive.ubuntu.com/ubuntu precise main restricted universe 然后执行: $ sudo apt-mirror 1.4 创建ubuntu目录 $ cd /var/www $ sudo ln -s /var/spool/apt-mirror/skel/archive.ubuntu.com/ubuntu 1.5.
二、安装apt-mirror 这里以Debian streach为例,其他版本同理,服务器所用的系统并不需要和搭建的镜像站匹配,一个系统上可以搭建多个操作系统、不同代号版本的镜像站,你可以理解为镜像站只是基于 #每天23点执行一次apt-mirror,定时向上游更新镜像站文件 0 22 * * * /var/spool/apt-mirror/var/clean.sh #提前一个小时清理被上游镜像站遗弃的软件包 如果想立马拉取,临时改成特定时间点即可,或者后台运行(第一次拉取会花很长时间,不建议前台执行): nohup apt-mirror & 五、修正apt-mirror脚本bug apt-mirror有个小 修正方法也很简单: vim $(which apt-mirror) #修改apt-mirror脚本 大概在第523行,正则匹配后面加上.xz后缀情况就行: [q8xr7twdgg.png] #修改前: web apt-mirror拉取镜像站默认存储到的路径为:/var/spool/apt-mirror,通过/etc/apt/mirror.list的set base_path指定,如果需要修改路径,修改此参数即可
但是ubuntu我们并不需要所有版本的数据,如果只同步我们需要的(14.04和16.04)那还是apt-mirror好用一点,所以后来又加了apt-mirror的支持。
四、实战:搭建离线APT仓库(Ubuntu20.04为例)Debian/Ubuntu系的仓库结构比YUM复杂得多,通常使用apt-mirror工具来进行同步。 deb-srchttp://mirrors.aliyun.com/ubuntu/focalmain...cleanhttp://mirrors.aliyun.com/ubuntu3.开始同步(漫长的等待):切换到apt-mirror 用户执行同步(或直接用root,注意权限):展开代码语言:BashAI代码解释apt-mirror这个过程可能会持续几个小时甚至几天,取决于你的网速和同步的数据量。 (Reviewreposync的参数和apt-mirror的机制)。版本冻结:对于追求极度稳定的生产环境,如何利用离线源实现软件版本的冻结,避免意外升级带来的Bug?
使用 apt-mirror 镜像会出错,实测 debmirror 没问题。
APT-mirror是创建本地Ub仓库镜像的常用工具。 安装和配置APT-mirror:# 安装所需软件sudo apt-get install apache2 apt-mirror# 创建镜像存储目录sudo mkdir /linoxide# 配置APT-mirrorsudo http://192.168.0.100/ubuntu/ jammy main restricted universe定期更新镜像通过cron作业:# 每天凌晨3点同步0 3 * * * /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log镜像维护包括清理旧版本和过期包:# 手动清理/linoxide/var/clean.sh对于空间受限的环境,可以考虑只镜像需要的部分组件或架构 http://apt-cache-server:3142";' | sudo tee /etc/apt/apt.conf.d/01proxy统一源管理:创建内部软件仓库镜像,包含两个版本所需的包:# 配置apt-mirror