游乐游手机版
首页/编程语言/文章详情

Yum更新系统内核的步骤

时间:2026-04-30 22:53
Yum更新系统内核:一份清晰、安全的操作指南 为系统更新内核,听起来是个大工程,但其实只要步骤清晰,就能安全、顺利地完成。关键在于,你得先搞清楚自己到底需要哪种更新:是打个小补丁,还是来一次大版本升级?这决定了后续完全不同的操作路径。 一、准备与版本确认 动手之前,先摸清家底。这就像医生开药前得先问

Yum更新系统内核:一份清晰、安全的操作指南

Yum更新系统内核的步骤

为系统更新内核,听起来是个大工程,但其实只要步骤清晰,就能安全、顺利地完成。关键在于,你得先搞清楚自己到底需要哪种更新:是打个小补丁,还是来一次大版本升级?这决定了后续完全不同的操作路径。

一、准备与版本确认

动手之前,先摸清家底。这就像医生开药前得先问诊,至关重要。

  • 确认系统版本与当前内核
    • 查看系统发行版:cat /etc/redhat-release
    • 查看内核版本:uname -runame -a
  • 建议先安装常用内核开发包(编译驱动/模块需要):yum install -y kernel-devel kernel-headers
  • 核心说明:这里有个常见的理解误区。如果仅仅使用发行版自带的官方仓库,执行 yum update kernel 通常只能获得同大版本下的安全补丁和小版本更新。如果你想把内核升级到更新的主线或长期支持版本,那就必须引入第三方仓库(比如ELRepo),然后从那里安装新内核包。

二、方式A:小版本更新(发行版仓库)

如果你只想获取官方提供的安全修复和稳定性更新,这个方法最直接、最安全。

  • 操作步骤
    • 列出可升级的内核版本:yum list kernel --showduplicates
    • 执行更新:yum update -y kernel
    • 重启生效:reboot
    • 验证新内核:uname -r
  • 特点:流程简单,风险极低。但缺点是版本上限被官方仓库牢牢锁死,无法获得更前沿的内核特性。

三、方式B:大版本更新(ELRepo仓库)

当你需要新硬件支持、特定功能或更高的性能时,就需要借助ELRepo这样的第三方仓库来升级内核大版本了。别担心,跟着步骤走,一样稳妥。

  1. 导入GPG密钥并启用ELRepo仓库(以CentOS 7为例,其他版本请相应替换版本号):
    • rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    • yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
  2. 查看ELRepo提供的内核包
    • yum --disablerepo="*" --enablerepo="elrepo-kernel" list a vailable
  3. 选择并安装内核(二选一):
    • 主线稳定版(最新特性):yum --enablerepo=elrepo-kernel install -y kernel-ml
    • 长期支持版(追求稳定):yum --enablerepo=elrepo-kernel install -y kernel-lt
    • 如果需要头文件或开发包:yum --enablerepo=elrepo-kernel install -y kernel-{ml,lt}-devel
  4. 设置默认启动内核(这是关键一步,确保重启后进入新内核):
    • 查看GRUB启动项顺序:awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
    • 按序号设置默认项:grub2-set-default 0(将0替换为目标内核的序号)
    • 或者,你也可以编辑 /etc/default/grub 文件,设置 GRUB_DEFAULT=0,然后重新生成配置。
    • 生成GRUB配置:grub2-mkconfig -o /boot/grub2/grub.cfg
  5. 重启并验证:执行 reboot,重启后运行 uname -r 确认新内核已生效。

重要说明:ELRepo仓库中的 kernel-ml 代表最新的主线稳定内核,而 kernel-lt 则是长期支持版本。采用yum install方式安装新内核是“新增”而非“替换”,旧内核会被保留,这为万一出现问题提供了宝贵的回滚机会。

四、验证与回滚

更新完成不是终点,验证和掌握回滚方法才能让你高枕无忧。

  • 验证要点
    • 当前运行内核:uname -r
    • 系统已安装的所有内核包:rpm -qa | grep kernel
    • 默认启动项:grub2-editenv list
  • 回滚方法
    • 如果新内核有问题,重启时在GRUB菜单手动选择旧内核进入系统。进入后,将默认启动项改回旧内核序号(例如 grub2-set-default <旧序号>),并重新生成GRUB配置。
    • 确认系统在旧内核下运行稳定后,可以移除有问题的内核包(注意:切勿删除当前正在运行的内核):yum remove -y kernel-{ml,lt}-<版本号>。或者,使用 package-cleanup --oldkernels 清理旧内核,通常建议保留1-2个旧版本以备不时之需。

五、注意事项

最后,几个关键提醒能帮你避开大多数坑。

  • 备份先行:升级前务必备份重要数据和配置文件,并在业务低峰期操作。
  • 理解“安装”与“更新”:使用 yum/dnf install 安装新内核是安全做法,因为它会保留旧内核。而某些“升级”操作可能会覆盖旧版,一旦新内核启动失败,恢复起来会非常麻烦。
  • 环境兼容性:某些特定环境(如容器、虚拟化平台)对内核版本非常敏感,升级前请务必确认兼容性。对于生产服务器,如果追求极致稳定,应优先选择长期支持版(kernel-lt)。
  • 慎用自动更新排除:如果因特殊原因需要禁止内核自动更新,可以在 /etc/yum.conf 中添加 exclude=kernel*。但需要警惕的是,在需要持续获得安全修复的环境中,长期排除内核更新会带来严重的安全风险。
来源:https://www.yisu.com/ask/28517219.html
上一篇怎样用Yum解决软件冲突 下一篇如何通过Compton配置提升桌面流畅度
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
如何在ThinkPHP中实现定时任务与命令行调度方法
编程语言 · 2026-07-04

如何在ThinkPHP中实现定时任务与命令行调度方法

用ThinkPHP实现定时任务时,很多开发者第一步就卡在命令行报错上,直接输入php think your:command却无法识别——这种情况绝大多数是因为命令类的注册方式存在问题。下面先梳理几个核心要点。 ThinkPHP 6 中 think 命令如何正确触发自定义指令 直接运行 php thi

ThinkPHP API接口防重放攻击实现方法
编程语言 · 2026-07-04

ThinkPHP API接口防重放攻击实现方法

先说几个核心判断:API防重放攻击这件事,做对了是道防火墙,做错了就是个心理安慰。很多开发者到踩坑了才明白——验签这东西,放错位置、漏掉字段、存错nonce,每一环都能让整个安全体系直接归零。 验签必须放在中间件里,不能在控制器里写 ThinkPHP 的请求生命周期中,中间件是唯一能在路由匹配、参数

ThinkPHP文件上传必须验证扩展名安全必要性分析
编程语言 · 2026-07-04

ThinkPHP文件上传必须验证扩展名安全必要性分析

在使用ThinkPHP进行文件上传时,ext扩展名验证通常是开发者首先接触的关键环节。但你真的了解它的实际工作原理吗?它仅比对文件名后缀,而不读取文件内容,甚至对空格和大小写都极其敏感。更为重要的是——它是TP文件上传验证五层防线中不可忽视的第一道关卡,一旦配置遗漏,整个validate验证链将直接

ThinkPHP关联模型自动写入与更新使用教程
编程语言 · 2026-07-04

ThinkPHP关联模型自动写入与更新使用教程

需要明确的是,ThinkPHP关联模型并没有提供所谓的“自动写入 更新”魔法开关。所谓的“自动”功能,实际上都需要开发者手动编写配置逻辑才能生效。核心原则在于:主模型和从模型必须分开独立处理,时间戳字段和业务字段需依靠修改器或钩子接管;批量操作则要规规矩矩地绕过模型逻辑来执行——只有理解透彻这些要点

BoxLayout中仅居中一个组件其他默认左对齐
编程语言 · 2026-07-04

BoxLayout中仅居中一个组件其他默认左对齐

在 Java Swing 中使用 BoxLayout 的 Y_AXIS 方向布局时,很多初学者容易掉进一个常见陷阱:希望将某个组件单独设置为中心对齐,但当调用 `setAlignmentX(CENTER_ALIGNMENT)` 后,却发现其他组件也跟着发生了偏移,完全达不到预期效果。实际上,关键之处