Ubuntu 26.04 搭建本地软件源并同步官方源教程

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:///ubuntu-mirror/` 可以访问本地软件源的文件列表。

🖥️ 客户端使用本地源

在需要使用本地源的机器上,编辑 `/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 对外提供访问以及设置定时同步的完整流程。今后即可在局域网内快速、稳定地为多台机器安装和更新软件包。祝使用愉快!

© 版权声明
THE END
喜欢就支持一下吧
点赞5分享
评论 抢沙发

请登录后发表评论

    暂无评论内容