Skip to Content
文档运维系统管理软件源与更新策略

软件源与更新策略

正确配置软件源和制定合理的更新策略对系统的安全性和稳定性至关重要。本文介绍 Ubuntu 26.04 中软件源的配置方法和各种更新策略。

软件源基础

Ubuntu 26.04 软件源格式

从 Ubuntu 24.04 开始,APT 源配置使用新的 DEB822 格式,配置文件位于 /etc/apt/sources.list.d/ubuntu.sources:

cat /etc/apt/sources.list.d/ubuntu.sources

典型内容如下:

Types: deb deb-src URIs: http://archive.ubuntu.com/ubuntu Suites: resolute resolute-updates resolute-backports Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

软件源组件说明

组件说明
mainCanonical 官方支持的开源软件
restricted官方支持的专有驱动
universe社区维护的开源软件
multiverse受版权或法律限制的软件

套件说明

套件说明
resolute基础发行版仓库
resolute-updates推荐更新
resolute-backports向后移植的新版本软件
resolute-security安全更新

更换国内镜像源

# 备份原始配置 sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak # 编辑源配置 sudo nano /etc/apt/sources.list.d/ubuntu.sources

将 URIs 替换为国内镜像:

Types: deb deb-src URIs: https://mirrors.aliyun.com/ubuntu Suites: resolute resolute-updates resolute-backports resolute-security Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Tip

选择镜像源时,优先选择地理位置和网络距离最近的节点。教育网用户推荐清华或中科大镜像,云服务器用户推荐使用对应云厂商的内网镜像以获得最快速度。

常用国内镜像:

镜像源地址
阿里云https://mirrors.aliyun.com/ubuntu
清华大学https://mirrors.tuna.tsinghua.edu.cn/ubuntu
中科大https://mirrors.ustc.edu.cn/ubuntu
华为云https://mirrors.huaweicloud.com/ubuntu
腾讯云https://mirrors.cloud.tencent.com/ubuntu

更换后刷新索引:

sudo apt update
Warning

PPA 是第三方个人维护的软件源,其软件包未经 Canonical 官方审核。添加不可信的 PPA 可能引入安全风险或导致系统包依赖冲突。仅添加知名项目的 PPA,升级系统版本前建议先禁用所有 PPA。

PPA 管理

PPA(Personal Package Archive)允许第三方开发者分发软件包。

添加 PPA

# 添加 PPA sudo add-apt-repository ppa:graphics-drivers/ppa # 添加后更新索引 sudo apt update # 安装 PPA 中的软件,具体版本以 ubuntu-drivers devices 输出为准 sudo apt install nvidia-driver-XXX

删除 PPA

# 移除 PPA sudo add-apt-repository --remove ppa:graphics-drivers/ppa # 更新索引 sudo apt update

手动添加第三方源

以添加 Docker 官方源为例:

# 下载 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加仓库(DEB822 格式) # 注意:Docker 官方源可能尚未发布 resolute 套件, # 若 apt update 报找不到 Release 文件,可暂时回退到 noble sudo tee /etc/apt/sources.list.d/docker.sources << 'EOF' Types: deb URIs: https://download.docker.com/linux/ubuntu Suites: resolute Components: stable Signed-By: /usr/share/keyrings/docker-archive-keyring.gpg EOF # 更新并安装 sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io

列出已配置的源

# 查看所有源文件 ls /etc/apt/sources.list.d/ # 查看 APT 使用的所有源 apt policy # 查看某个包来自哪个源 apt policy nginx

APT 更新管理

基本更新命令

# 更新软件包索引 sudo apt update # 升级已安装的软件包 sudo apt upgrade # 智能升级(可能安装或删除依赖) sudo apt full-upgrade # 仅查看可升级的包,不实际升级 apt list --upgradable # 升级特定软件包 sudo apt install --only-upgrade nginx

查看更新历史

# 查看 APT 操作历史 cat /var/log/apt/history.log # 使用 zless 查看压缩的历史日志 zless /var/log/apt/history.log.1.gz # 查看 dpkg 操作日志 cat /var/log/dpkg.log

软件包锁定

如果需要阻止某个软件包被更新:

# 锁定软件包版本 sudo apt-mark hold package-name # 解除锁定 sudo apt-mark unhold package-name # 查看所有被锁定的包 apt-mark showhold

unattended-upgrades 自动更新

安装和启用

# 安装(Ubuntu 26.04 通常已预装) sudo apt install unattended-upgrades # 启用自动更新 sudo dpkg-reconfigure -plow unattended-upgrades

配置自动更新

编辑主配置文件:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

关键配置项:

Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}"; "${distro_id}:${distro_codename}-security"; "${distro_id}:${distro_codename}-updates"; // "${distro_id}:${distro_codename}-proposed"; // "${distro_id}:${distro_codename}-backports"; }; // 不自动更新的黑名单 Unattended-Upgrade::Package-Blacklist { "linux-image*"; "linux-headers*"; "nginx"; }; // 自动移除不再需要的依赖 Unattended-Upgrade::Remove-Unused-Dependencies "true"; // 自动移除不再需要的内核 Unattended-Upgrade::Remove-Unused-Kernel-Packages "true"; // 必要时自动重启 Unattended-Upgrade::Automatic-Reboot "true"; Unattended-Upgrade::Automatic-Reboot-Time "03:00"; // 邮件通知 Unattended-Upgrade::Mail "admin@example.com"; Unattended-Upgrade::MailReport "on-change";

配置更新频率:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7";

测试自动更新

# 模拟运行(不实际安装) sudo unattended-upgrade --dry-run --debug # 立即执行一次自动更新 sudo unattended-upgrade -v # 查看自动更新日志 cat /var/log/unattended-upgrades/unattended-upgrades.log

更新策略建议

桌面用户

# 推荐设置:自动安装安全更新,手动安装功能更新 # /etc/apt/apt.conf.d/20auto-upgrades APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7";

定期手动检查和安装更新:

sudo apt update && apt list --upgradable sudo apt upgrade

服务器环境

对于生产服务器,建议:

  1. 仅自动安装安全更新,其他更新手动处理。
  2. 设置维护窗口进行计划性更新。
  3. 先在测试环境验证再应用到生产。
  4. 启用邮件通知了解更新情况。
# 服务器推荐配置 # /etc/apt/apt.conf.d/50unattended-upgrades Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; }; Unattended-Upgrade::Automatic-Reboot "false"; Unattended-Upgrade::Mail "admin@example.com";

版本升级

升级到新的 Ubuntu 版本

# 确保当前系统已完全更新 sudo apt update && sudo apt full-upgrade # 检查是否有可用的新版本 do-release-upgrade -c # 执行版本升级 sudo do-release-upgrade

清理更新残留

# 清理已下载的 deb 包缓存 sudo apt clean # 移除不再需要的依赖 sudo apt autoremove # 清理残留配置文件 dpkg -l | grep '^rc' | awk '{print $2}' | xargs sudo dpkg --purge
Last updated on