Ubuntu 26.04 搭建本地软件源并同步官方源教程
📖 概述
本教程演示如何在 **Ubuntu 26.04 LTS** 上搭建本地 APT 软件源,并使用 `apt-mirror` 将官方仓库同步到本地,实现离线或局域网内的快速软件包安装。主要优势包括:
- 🚀 加速软件包下载速度
- 💾 减少对外部网络的依赖
- 🛡️ 在离线环境中进行系统维护
- 🎯 在局域网内共享软件源
- 🔄 自动同步官方仓库,保持最新
🛠️ 环境准备
前置条件
- ✅ 已安装并正常启动的 Ubuntu 26.04 LTS 系统
- ✅ root 权限或 sudo 权限
- ✅ 至少 100 GB 可用磁盘空间(视同步范围而定)
- ✅ 稳定的网络连接(用于首次同步)
系统更新
sudo apt update && sudo apt upgrade -y
📦 安装必备工具
# apt-mirror 用于同步官方仓库
sudo apt install -y apt-mirror apache2 rsync
> **说明**:`apache2` 将用于对外提供 HTTP 服务,让局域网其他机器访问本地源。
🗂️ 创建目录结构
# 创建存放镜像的目录(默认 /var/spool/apt-mirror)
sudo mkdir -p /var/spool/apt-mirror
# 创建用于发布的 web 根目录
sudo mkdir -p /var/www/html/ubuntu-mirror
🛠️ 配置 apt-mirror
编辑 `/etc/apt/mirror.list`(使用您喜欢的编辑器),示例内容如下:
# /etc/apt/mirror.list
set base_path /var/spool/apt-mirror
set defaultarch amd64
set nthreads 20
set _tilde 0
# 官方源( Ubuntu 26.04 "jammy" 为示例,可自行替换为 26.04 对应代号)
deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# 可选:源代码
# deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
# 其他常用仓库(如 backports、proposed)
# deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
# deb http://archive.ubuntu.com/ubuntu/ jammy-proposed main restricted universe multiverse
> **提示**:将 `jammy` 替换为 Ubuntu 26.04 的代号(实际代号可能为 `lunar` 或 `mantic`,请根据发行版官方文档确认)。这里使用 `jammy` 仅作示例。
🔄 首次同步官方仓库
# 以 root 运行同步(会消耗大量带宽和磁盘)
sudo apt-mirror
同步完成后,所有下载的 `.deb` 包会存放在 `/var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/` 目录下。
🌐 配置本地 HTTP 服务
# 将镜像目录软链接到 Apache 站点目录
sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu /var/www/html/ubuntu-mirror
# 确保 Apache 能访问该目录
sudo chown -R www-data:www-data /var/spool/apt-mirror/mirror
# 重新加载 Apache 配置
sudo systemctl reload apache2
现在,通过 `http://
🖥️ 客户端使用本地源
在需要使用本地源的机器上,编辑 `/etc/apt/sources.list`,添加或替换为本地地址,例如:
# 本地源(假设服务器 IP 为 192.168.1.10)
deb http://192.168.1.10/ubuntu-mirror/ jammy main restricted universe multiverse
deb http://192.168.1.10/ubuntu-mirror/ jammy-updates main restricted universe multiverse
deb http://192.168.1.10/ubuntu-mirror/ jammy-security main restricted universe multiverse
更新 apt 缓存并测试:
sudo apt update
sudo apt install -y curl # 应该从本地源下载
🔁 自动定时同步(可选)
为了让本地源保持与官方同步,可设置 `cron` 任务每天或每周自动运行 `apt-mirror`。
# 编辑 root 的 crontab
sudo crontab -e
# 添加每日凌晨 2 点同步任务
0 2 * * * /usr/bin/apt-mirror >/dev/null 2>&1
> **注意**:同步过程会占用大量网络带宽,建议在业务低谷时段执行,或者使用 `ionice`/`nice` 限制资源占用。
📊 通过 rsync 同步(高级方案)
如果您已有另一台机器已经完成 `apt-mirror` 同步,可以使用 `rsync` 将镜像复制到本机,避免重复下载。
rsync -avz --progress user@remote:/var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/ /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/
随后同样创建软链接并 reload Apache 即可。
🛡️ 防火墙设置(可选)
如果服务器启用了 `ufw`,只需开放 HTTP 端口:
sudo ufw allow 80/tcp
sudo ufw reload
🐛 常见故障排查
1. **同步中断或错误**
# 查看 apt-mirror 日志(默认在 /var/log/apt-mirror.log)
tail -n 30 /var/log/apt-mirror.log
常见原因:磁盘空间不足、网络不稳定、源 URL 错误。
2. **客户端无法访问本地源**
- 确认服务器防火墙已放行 80 端口。
- 检查 Apache 日志 `/var/log/apache2/access.log` 是否收到请求。
- 确认软链接路径正确且目录权限为 `www-data` 可读。
3. **`apt update` 报错 GPG 签名失效**
- 本地镜像默认保留官方的 Release 文件和签名,确保同步时未被篡改。
- 如有需要,可在客户端禁用签名检查(不推荐),或使用 `apt-get update –allow-unauthenticated`。
✅ 完成
至此,您已经掌握了在 Ubuntu 26.04 上搭建本地 APT 软件源、同步官方仓库、通过 Apache 对外提供访问以及设置定时同步的完整流程。今后即可在局域网内快速、稳定地为多台机器安装和更新软件包。祝使用愉快!











暂无评论内容