CentOS 7升级内核的三种方式(yum/rpm/源码)

说实话,在CentOS系统上升级内核确实很烦人。
我在一家金融IT公司从事运营和维护工作。
他们的旧系统运行的是 CentOS 6 ,内核仍然陈旧且崩溃。
结果有一天安全服务突然发现了一个漏洞,而且补丁只能在新内核中使用。
当时我就很头疼。

1 .使用 Yum 进行升级。
这是最省心的方法。

以我当时的经历为例。
将系统升级到 CentOS 7 后,内核从过时的版本 3 .1 迁移到 4 .1 7 .8 只需使用 yum 即可完成。
操作其实非常简单。
您首先需要获得仓库的正确来源,特别是ELRepo仓库,它具有较新的核心。
打开终端并输入命令:
bash sudo yum install kernel-lt
这是长期支撑的短线,比较稳定。
安装完成后,重点是调整启动顺序。
使用 grub2 -mkconfig 生成新的配置文件,然后选择新的内核进行引导。
说实话,用yum升级是最简单的,但是有时候版本选择需要花点心思,就看你选择mainline还是lt。

2 使用rpm来打包特定版本。
这是最灵活的方法。

在我的另一个项目中,客户端专门指定了某个LT内核版本,例如4 .4 .1 5 在这种情况下,yum 将不起作用,您必须使用 RPM。
首先你得去ELRepo源码看看这个版本是否存在。
否则,您可能需要手动下载。
我当时遇到了一个版本,但 ELRepo 中没有该版本。
最后只好去kernel.org官方网站下载源码,自己编译。

下载后直接使用rpm命令安装:
bash sudo rpm -ivh kernel-4 .4 .1 5 -1 .el7 .elrepo.x8 6 _6 4 .rpm
安装后,您还需要更改引导顺序并使用 grub2 -mkconfig。
这种方法的优点是版本控制严格,但原则是你应该能找到对应的RPM包。

3 从源代码编译。
这是最费力、最个性化的方法。

最极端的情况是从源代码编译。
我已经在实验室搭建了一个实验环境,使用CentOS 7 .1 8 .04 进行最小化安装,然后自己编译内核。
这一步是最繁琐的。
您需要先设置构建环境,然后创建构建目录,然后从源代码编译。

我当时下载的是清华镜像站的源码,最新版本。
解压后,输入命令:
bash make menuconfig 这里可以配置内核选项 make -j4 -j 后面跟一个数字表示用于编译的线程数。
如果您的计算机性能良好,请使用更多线程。
创建模块_安装 进行安装
编译后,启动顺序也必须改变。
说实话,这种方法是最技术性的测试,但优点是内核是完全按需定制的,你可以决定需要哪些功能和驱动。

4 卸载降级,这个要小心
有时旧内核安装太多,或者新内核不稳定安装后,需要降级或卸载。
我以前也经历过陷阱。
安装新内核后,系统无法启动。
最后我不得不恢复到旧内核。
操作方面,首先查看当前使用的是哪个内核:
bash uname -r
然后列出所有核心:
bash 列出 grub2 -editenv /boot/grub/grubenv
只需删除不需要的核心即可。
但最重要的是,卸载前应确认当前系统是否仍能正常启动,否则很容易造成损坏。

总的来说,这三种方法各有优缺点。
使用yum是最简单的方式,RPM包灵活但​​要找包,编译源码最麻烦但最可控。
实际操作中应根据具体情况进行选择。

怎样用YUM查看已安装软件

坦白说,使用yum或dnf来检查软件是否安装非常简单。

CentOS7 以下使用yum,CentOS8 以上使用dnf。

想看看整个包裹里有什么吗? yumlistinstalled 或 dnflistinstalled 就可以了。
如何仅检查一项?软件包名称 yumlistinstalled 或软件包名称 dnflistinstalled。

想了解更多吗? yuminfo 包名或 dnfinfo 包名。
搜索包的名称是什么? yumsearch 关键字或 dnfsearch 关键字。

注意:普通用户可以查看,加载和卸载需要sudo。
CentOS8 中仍然可以使用yum,但它实际上是DNF接口。

使用grep来过滤输出非常方便,比如yumlistinstalled|grep httpd。

如何使用?你自己看看吧。

如何查看CentOS7的版本信息

由你决定。