利用apt-mirror制作Ubuntu本地源

简介

  • 使用apt安装软件是非常方便的,但是有时下载软件包是非常耗时的,所以设置1apt的本地源是非常有必要的。
  • 可以为公司内部局域网提供本地源,增强员工的工作效率,节省大量的时间。

Server端

安装apt-mirror

1
apt install -y apt-mirror

创建存储目录

  • 由于软件包的大小有100G+,故推荐挂载一块新磁盘,分区并格式化磁盘:
1
2
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
  • 挂载至指定目录
1
2
3
mkdir -p /opt/source/
mount /dev/sdb1 /opt/source/
echo '/dev/sdb1 /opt/source/ ext4 defaults 0 0' >> /etc/fstab

配置apt-mirror

1
vim /etc/apt/mirror.list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
set base_path /opt/source
set nthreads 20
set _tilde 0

# 中科大的软件源,包含i386和amd64俩种架构,不包含deb-src
deb-i386 https://mirrors.ustc.edu.cn/ubuntu bionic main restricted universe multiverse
deb-i386 https://mirrors.ustc.edu.cn/ubuntu bionic-updates main restricted universe multiverse
deb-i386 https://mirrors.ustc.edu.cn/ubuntu bionic-backports main restricted universe multiverse
deb-i386 https://mirrors.ustc.edu.cn/ubuntu bionic-security main restricted universe multiverse

deb-amd64 https://mirrors.ustc.edu.cn/ubuntu bionic main restricted universe multiverse
deb-amd64 https://mirrors.ustc.edu.cn/ubuntu bionic-updates main restricted universe multiverse
deb-amd64 https://mirrors.ustc.edu.cn/ubuntu bionic-backports main restricted universe multiverse
deb-amd64 https://mirrors.ustc.edu.cn/ubuntu bionic-security main restricted universe multiverse

# 清除无用的安装包,节省磁盘空间
clean https://mirrors.ustc.edu.cn/ubuntu
clean http://ubuntu-cloud.archive.canonical.com/ubuntu

同步源

  • 创建postmirror.sh文件,否则会报can't open /opt/source/var/postmirror.sh的错误,此文件用于执行同步软件源成功后所执行的操作。
1
touch /opt/source/var/postmirror.sh
  • 同步软件源(首次同步非常耗时,具体时间由实际带宽决定):
1
apt-mirror

安装Nginx

1
apt install -y nginx

创建软链接

1
2
ln -s /opt/source/mirror/mirrors.ustc.edu.cn/ubuntu /var/www/html/ubuntu
ln -s /opt/source/mirror/ubuntu-cloud.archive.canonical.com/ubuntu /var/www/html/openstack

设置定时任务,定时同步软件源

  • 利用crontab设置定时任务
1
crontab -e
1
0 2 * * * /usr/bin/apt-mirror > /opt/source/var/cron.log &

Client端

修改软件源

1
vim /etc/apt/source.list
1
2
3
4
deb http://<Server端的IP地址>[:PORT]/ubuntu/ bionic main restricted universe multiverse
deb http://<Server端的IP地址>[:PORT]/ubuntu/ bionic-updates main restricted universe multiverse
deb http://<Server端的IP地址>[:PORT]/ubuntu/ bionic-security main restricted universe multiverse
deb http://<Server端的IP地址>[:PORT]/ubuntu/ bionic-backports main restricted universe multiverse

更新软件源

1
apt update
  • 若在执行更新过程中,遇到GPG error,则为缺少某一Key,使用以下命令添加即可。
  • 根据实际情况替换<Public_KEY>
1
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com Public_KEY

请作者喝瓶肥宅快乐水