系统更新与安全补丁
dnf 的更新能力分三个层次:全量升级把所有可更新包升到源里的最新版本,单包升级只动指定软件,按安全通告升级则只装标记为安全类的补丁。信创环境的常见做法是保守路线——先看清有哪些可更新项和安全公告,再按最小必要范围升级,避免一次整机升级把内核与系统库一起换掉。无论走哪条路线,升级前都要确认有测试验证或快照回退手段,升级后核对服务与内核是否需要重启。
基本信息
| 全量升级 | dnf upgrade 或 dnf update |
|---|---|
| 单包升级 | dnf upgrade 包名 |
| 仅安全补丁 | dnf upgrade --security |
| 查可更新项 | dnf check-update |
| 看安全公告 | dnf updateinfo list --security |
| 变更回退 | dnf history 查看并按事务回退 |
| 适用平台 | openEuler / Kylin V10 服务器版 / UOS 服务器版 |
典型使用场景
- 定期补丁维护:按安全公告清单只打安全类补丁,控制变更范围
- 修复单个组件漏洞:单独升级相关软件包,避免牵动整套系统
- 升级前评估:先列出可更新项与公告,判断影响面再决定窗口
- 回退准备:升级前记录事务号与关键包版本,出问题可定位
- 内核更新后收尾:确认是否需要重启,并核对引导项
- 审计留痕:把每轮升级的范围与结果记录归档
更新流程示例
更新流程示例
dnf check-update # 列出可更新项,不改动系统
dnf updateinfo list --security # 单独看安全类公告
dnf upgrade -y --security # 只装安全类补丁
dnf upgrade -y nginx # 只升指定包
dnf history list | head # 记录本次事务号,便于回退
dnf history info last # 查看最近一次事务的明细更新方式对照
| 方式 | 命令要点 | 适用与风险 |
|---|---|---|
| 全量升级 | 升级所有可更新包 | 影响面最大,生产前需测试 |
| 单包升级 | 指定包名 | 范围最小,适合修单个漏洞 |
| 仅安全补丁 | 按安全标记过滤 | 常用于合规维护窗口 |
| 查看可更新 | 只列出不执行 | 变更评审前的必做动作 |
| 查看公告 | 输出安全公告清单 | 判断优先级与影响范围 |
| 回退变更 | 按事务号回退 | 需要源中仍存在旧版本 |
内核与系统库升级后通常需要重启才能生效,升级完成不等于补丁已生效。重启前确认引导项与业务自启状态,并确认旧内核仍保留,必要时可以临时选旧内核回退。
升级是成批事务:中途断网或被中断可能留下未完成状态,恢复后先做一次事务检查再继续。部分发行版提供由 dnf-plugins-core 携带的重启判定插件,可用来辅助判断是否需要重启;是否可用取决于发行版与是否安装该插件,不能想当然。