linux软件升级核心是包管理器,安全更新最关键;ubuntu/debian用 apt,centos/RHEL/Rocky 用dnf/yum;均需先同步源、再升级、最后验证服务。

Linux 软件升级主要通过包管理器完成,安全更新是其中最关键的部分。不同发行版命令不同,但核心逻辑一致:先同步软件源信息,再安装更新,最后验证关键服务是否正常。
Ubuntu/Debian 系统:用 apt 升级并打补丁
这类系统使用 apt 工具 管理软件包,安全更新通常包含在常规升级中,也可单独处理高危漏洞:
- 更新软件源列表:sudo apt update
- 升级已安装软件(含安全修复):sudo apt upgrade(不自动删除或重装包)
- 执行完整升级(可能更改依赖、移除旧包):sudo apt full-upgrade
- 只安装安全相关的更新(需启用 security 源):sudo apt install $(apt list –upgradable 2>/dev/NULL | grep security | cut -d’/’ -f1),或更稳妥地用 sudo unattended-upgrade -d(需先配置
/etc/apt/apt.conf.d/50unattended-upgrades)
CentOS/RHEL/Rocky Linux:用 dnf 或 yum 补丁加固
较新版本(RHEL 8+、CentOS stream、Rocky 9)默认用 dnf;旧版 RHEL/CentOS 7 仍可用 yum,但推荐迁移到 dnf:
- 刷新元数据:sudo dnf makecache 或 sudo yum makecache
- 升级全部软件(含安全更新):sudo dnf upgrade
- 仅安装安全更新:sudo dnf –security upgrade(需 dnf-plugin-security 插件,多数新版已内置)
- 查看待修复的安全公告:sudo dnf updateinfo list security,再按 CVE 编号安装特定补丁:sudo dnf update –cve CVE-2023-1234
升级后必须做的三件事
更新不是点一下就完事,尤其涉及内核、ssh、数据库 等关键组件:
- 重启相关服务:比如更新了
openssh-server,运行 sudo systemctl restart sshd;更新了nginx就重启nginx - 检查内核是否需要重启:运行 uname -r 查看当前内核,再对比 ls /boot/vmlinuz*,若新内核已安装但未生效,需 sudo reboot
- 验证基础功能:登录是否正常、网络连通性、关键应用能否启动(如 sudo -u postgres psql -c “select version();”)
自动化 安全更新(可选但推荐)
对服务器环境,手动更新易遗漏。可启用无人值守更新:
- Ubuntu/Debian:sudo dpkg-reconfigure -plow unattended-upgrades,然后编辑
/etc/apt/apt.conf.d/50unattended-upgrades,确保"${distro_id}:${distro_codename}-security";行启用 - RHEL/Rocky:sudo dnf install dnf-automatic,启用服务:sudo systemctl enable –now dnf-automatic.timer,配置见
/etc/dnf/automatic.conf,建议设为apply_updates = yes并开启邮件通知