简介

因为公司环境需求,需要部署一套ubuntu 22.04的镜像仓库.在这里我使用的是apt-mirror来进行部署

因为部分依赖要求我这里同步的是ubuntu官方镜像源占用了600G左右的磁盘容量.

image-20240621142716301

1.安装apt-mirror环境

1.1安装apt-mirror和apache2

1
2
3
4
sudo apt-get install apt-mirro apache2

systemctl start apache2
systemctl enable apache2

1.2修改apt-mirror配置详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
sudo vi /etc/apt/mirror.list

############# config ##################
#数据基目录
set base_path /var/spool/apt-mirror
#
#镜像存储位置
set mirror_path $base_path/mirror
#临时下载索引位置
set skel_path $base_path/skel
#URLs和MD5校验信息存储位置
set var_path $base_path/var
#清除废弃包脚本地址
set cleanscript $var_path/clean.sh
#默认下载的OS架构 像amd64这种的
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/ jammy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse

#这个脚本会清除上游服务器废弃的包的
clean https://mirrors.aliyun.com/ubuntu/

2.开始配置环境

2.1创建仓库目录

1
mkdir /mnt/ubuntu

2.2开始同步

1
2
3
4
5
6
7
8
9
apt-mirror

FAQ:
在进行apt-mirror的时候出现如下报错
/bin/sh: 0: cannot open /mnt/ubuntu-2204/var/postmirror.sh: No such file

解决方法(根据自己的路径填写):
cd /var/spool/apt-mirror/var/
cp postmirror.sh /mnt/ubuntu-2204/var/

2.3链接同步后的仓库文件

1
2
3
ln -s /mnt/ubuntu-2204/mirror/archive.ubuntu.com/ubuntu/ /var/www/html/

# 此处要主要链接的路径一定要在mirror/archive.ubuntu.com/ubuntu下,因为在apt-update的时候需要去找个目录下的dists校验,没有的话是会报错

2.4关闭自动更新(根据自己需求可选)

1
2
3
4
5
6
7
8
9
10
将这两个文件中的1全部改成0即可,重启后生效

vim /etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";

vim /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

2.5修改仓库链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat > /etc/apt/sources.list  << EOF
deb [trusted=yes] http://192.168.2.106/ubuntu/ jammy main restricted universe multiverse
deb-src [trusted=yes] http://192.168.2.106/ubuntu/ jammy main restricted universe multiverse
deb [trusted=yes] http://192.168.2.106/ubuntu/ jammy-security main restricted universe multiverse
deb-src [trusted=yes] http://192.168.2.106/ubuntu/ jammy-security main restricted universe multiverse
deb [trusted=yes] http://192.168.2.106/ubuntu/ jammy-updates main restricted universe multiverse
deb-src [trusted=yes] http://192.168.2.106/ubuntu/ jammy-updates main restricted universe multiverse
deb [trusted=yes] http://192.168.2.106/ubuntu/ jammy-backports main restricted universe multiverse
deb-src [trusted=yes] http://192.168.2.106/ubuntu/ jammy-backports main restricted universe multiverse
EOF

讲解:
1.将文中的IP地址修改为自己的地址即可
2.[trusted=yes]的意思是指定该仓库为可信源

2.6更新源

1
2
3
apt-get update  # 必须执行

如下图就算仓库更新完成

image-20240621144704552