8.5. 将当前安装的内核订阅到实时补丁流
内核补丁模块在 RPM 软件包中提供,具体取决于被修补的内核版本。每个 RPM 软件包将随着时间不断累积更新。
以下流程解释了如何订阅以后为给定内核的所有累积实时补丁更新。因为实时补丁是累计的,所以您无法选择为一个特定的内核部署哪些单独的补丁。
红帽不支持任何适用于红帽支持的系统的第三方实时补丁。
先决条件
- 您在系统上具有 root 权限。
流程
可选:检查您的内核版本:
uname -r
# uname -r 6.12.0-55.9.1.el10_0.x86_64
Copy to Clipboard Copied! 搜索与内核版本对应的实时补丁软件包:
dnf search $(uname -r)
# dnf search $(uname -r)
Copy to Clipboard Copied! 安装实时补丁(live patching)软件包:
dnf install kpatch
# dnf install kpatch
Copy to Clipboard Copied! 这个命令只为特定的内核安装并应用最新累积的实时补丁。
如果实时补丁软件包的版本是 1-1 或更高版本,则软件包将包含补丁模块。在这种情况下,内核会在安装 live patching 软件包期间自动修补。
内核补丁模块也安装到
/var/lib/kpatch/
目录中,供systemd
系统和服务管理器以后重启时载入。注意当给定内核没有可用的实时补丁时,将安装空的实时补丁软件包。一个空的实时打补丁软件包会有一个 0-0 的 kpatch_version-kpatch_release,如
kpatch-patch-6_12_0-1-0-0.x86_64.rpm
。空 RPM 安装会将系统订阅到以后为给定内核提供的所有实时补丁。
验证
验证是否所有安装的内核都已打了补丁:
kpatch list
# kpatch list Loaded patch modules: kpatch_6_12_0_1_0_1 [enabled] Installed patch modules: kpatch_6_12_0_1_0_1 (6.12.0.el10_0.x86_64) …
Copy to Clipboard Copied! 输出显示内核补丁模块已加载到现在已使用
kpatch-patch-6_12_0-0.el10_0.x86_64.rpm
软件包的最新修复打了补丁的内核中。注意输入
kpatch list
命令不会返回一个空的实时补丁软件包。使用rpm -qa | grep kpatch
命令替代。rpm -qa | grep kpatch
# rpm -qa | grep kpatch kpatch-dnf-0.4-3.el10.noarch kpatch-0.9.7-2.el10.noarch kpatch-patch-6_12_0-0.el10_0.x86_64
Copy to Clipboard Copied!