本文目录导读:

在 Linux 系统中,补丁更新(即安装安全更新和软件更新)主要通过系统的包管理器来完成,由于 Linux 发行版众多(如 Ubuntu、CentOS、Debian、Fedora 等),具体命令略有不同,但核心原理一致。
以下是详细的步骤和最佳实践:
核心命令(按发行版分类)
Debian / Ubuntu 系列(使用 apt)
这是最常见的桌面和服务器发行版。
-
更新软件包列表(获取最新版本信息):
sudo apt update
-
升级所有可升级的软件包(包括安全补丁):
sudo apt upgrade
注意:这个命令不会移除旧的内核或删除已废弃的依赖包。
-
全量升级(推荐):会处理依赖关系变化,可能安装或移除一些包(更彻底):
sudo apt full-upgrade
(在 Debian 中,
apt-get dist-upgrade与此等价) -
仅安装安全更新(Ubuntu 专属):
sudo apt install unattended-upgrades # 首次需安装此工具 sudo unattended-upgrades -d # 手动触发安全更新
通常更简单的做法是使用
apt update+apt upgrade,因为官方源默认会将安全更新标记为高优先级。 -
清理不需要的包:
sudo apt autoremove
Red Hat / CentOS / Fedora 系列(使用 dnf 或 yum)
-
CentOS 7 / RHEL 7 使用
yum,CentOS 8+ / Fedora / RHEL 8+ 使用dnf。 -
更新所有软件包(包括安全补丁):
# 旧系统 (yum) sudo yum update # 新系统 (dnf) sudo dnf upgrade
-
仅列出安全更新:
sudo yum updateinfo list security # 仅列出来 sudo yum update --security # 仅安装安全更新
对于
dnf:sudo dnf updateinfo list security sudo dnf update --security
-
检查内核更新:
sudo dnf list kernel sudo dnf update kernel
Arch Linux / Manjaro(使用 pacman)
Arch 是滚动更新,漏洞修复会随系统更新一起发布。
- 同步并更新所有包:
sudo pacman -Syu
注意:这是完整的系统更新,不仅仅是安全补丁。
高级与自动化方案
自动安全更新(推荐服务器使用)
-
Ubuntu/Debian:安装
unattended-upgrades并配置:sudo apt install unattended-upgrades sudo dpkg-reconfigure --priority=low unattended-upgrades
配置后,系统会在后台自动安装安全更新。
-
CentOS/RHEL:使用
dnf-automatic:sudo dnf install dnf-automatic sudo systemctl enable --now dnf-automatic.timer
重启通知与内核补丁
-
查看是否需要重启:
# Debian/Ubuntu cat /var/run/reboot-required # 通用方法(仅限CentOS/RHEL) needs-restarting -r
-
内核热补丁(避免重启):
- Ubuntu:使用
canonical-livepatch - Red Hat:使用
kpatch或kGraft - 通用:
KernelCare(第三方) 注意:热补丁只能修复部分内核漏洞,且需要订阅或付费。
- Ubuntu:使用
重要注意事项
-
备份是关键:在正式环境的服务器上更新前,尤其是内核更新,应备份重要数据或在维护窗口操作。
-
测试环境先行:如果可能,先在测试服务器上运行更新命令。
-
内核更新需重启:常规软件补丁通常无需重启,但内核更新后必须重启才能生效。
# 查看本次更新是否涉及内核 sudo apt list --upgradable | grep linux-image # Debian系
-
查看已安装的更新历史:
# Debian/Ubuntu grep " installed " /var/log/dpkg.log # Red Hat/CentOS sudo yum history list # 或使用 dnf
-
手动下载补丁:对于某些特殊场景(如离线环境),需从官方源下载
.deb或.rpm包,安装时需处理依赖关系(非推荐方法,尽量用包管理器)。
针对“零日漏洞”或紧急情况
如果发现高危漏洞(如 Shellshock、Heartbleed、Dirty Pipe 等),应:
- 立即查看官方公告(如 Ubuntu Security Notices、Red Hat Security Advisories)。
- 添加官方安全源(如 Ubuntu 的
-security源)。 - 立即执行更新:
# 以 Dirty Pipe (CVE-2022-0847) 为例 sudo apt update && sudo apt upgrade -y
- 如果是在容器中(如 Docker),则需更新基础镜像:
docker pull ubuntu:latest # 拉取最新镜像 docker build --no-cache . # 重建容器
总结清单
| 任务 | Debian/Ubuntu | CentOS/RHEL/Fedora | Arch |
|---|---|---|---|
| 全量更新 | sudo apt update && sudo apt upgrade |
sudo yum update 或 sudo dnf upgrade |
sudo pacman -Syu |
| 安全更新 | 同上(默认包含) | sudo yum update --security |
同上 |
| 自动更新 | unattended-upgrades |
dnf-automatic |
第三方工具 |
| 检查重启 | /var/run/reboot-required |
needs-restarting -r |
检查 /usr/lib/... |
核心原则:保持系统源最新,定期执行更新操作,并在生产环境更新前充分测试。