码迷,mamicode.com
首页 > 其他好文 > 详细

如何在CentOS/RHEL上安装或升级新的内核版本

时间:2017-04-25 21:22:16      阅读:1668      评论:0      收藏:0      [点我收藏+]

标签:linux kernel centos

Linux内核版本

   Linux内核版本分为主线、稳定和长期版本。(所有内核版本都可以在内核开发官方网站https://www.kernel.org上获取)目前我们看到最新的稳定内核版本为4.10.12

主线版本代表整个Linux内核的一个树干,新的主线版本每2-3个月发布一次,所有的新功能及特性都将会包含主线版本中。稳定内核则是在主线版本中,被认为是稳定的得出。稳定内核的任何错误修复都将从主线树中返回,也就是主线内核出现的任何错误(包括之前的任何旧版本内核的错误和BUG)在得到修复之后才会被指定为稳定内核,所以在通常情况下,稳定内核既有内核新功能,同时BUG也是最少的内核版本。稳定内核的更新发布依赖于主线内核(直到下一个主线内核可用),稳定的内核更新是根据需要发布的,通常是每3个月。而对于长期内核版本,通常提供几个长期维护内核版本,用于较早的内核树错误修复返回的目的。这些内核只应用重要的错误修复,通常不会有非常频繁的更新。

主线、稳定和长期都是活动内核版本,由Linus TorvaldsLinux内核组织维护和释放。 而我们平时所使用的Linux发行版的内核都为分发内核,许多Linux发行版都提供自己的长期维护内核版本,这些内核可能是也可能不是基于内核开发人员维护的内核。因此分发版本的内核版本由发行版的厂商决定并有自己的维护周期,通常由分发版更新时一起发布。


安装/升级新内核的目的

许多出于对安全的考虑,如避免以前版本中发现的漏洞

更充分地认识内核,了解内核的各个内核模块和功能

更好的利用/体验新内核的的新功能和特性


安装/升级的方法和建议

1、对于CentOS/RHEL系统,尽量使用yum方式或RPM包安装/升级内核,需要注意的是红帽的Red Hat Linux服务需要订阅。

2、使用安装新内核而不是直接升级内核,安装新内核不会覆盖旧内核,而升级会导致新内核直接替换旧内核,可能会导致系统无法启动,安装也可以让我们在升级后有回滚的选择。

3、一般地,对于大多数Linux分发版,使用yum/dnf和分发版布官方的存储库来升级内核,这种方式只能升级到该分发版的存储库提供的最新版本,而不是Linux内核组织发布的最新内核。

4、如果想迅速并且安全地使用最新内核,对于CentOS/RHEL系统并不支持yum的方式直接安装或升级。那么此时我们可以使用ELRepo(第三方存储库)进行内核安装升级。(相关信息请访问网站http://www.elrepo.org)

5、下载新内核的源码包进行编译安装,这种方式有助于我们更细致地学习内核底层知识,但在生产环境中不推荐编译安装。

6、尽量使用最新的Linux发行版,新的Liunx发行版包含该发行版维护的新内核,如果有必要,那么请使用如yum upgrade或者yum update来更新你的系统。对于UbuntuDebian等发行版,使用apt-get update方式来更新。


内核软件包介绍

  • kernel      Linux内核软件包,包含单、多核和多处理器系统的内核,是任何Linux操作系统的核心,单处理器的系统仅需安装内核包。内核处理操作系统的基本功能: 内存分配、进程分配、设备输入和输出等

  • kernel-devel   包含提供足够的针对内核软件包构建模块的内核头文件和makefile文件

  • kernel-headers  包含指定Linux内核、用户空间库文件和程序之间指定接口的C头文件。头文件定义了构建大多数标准程序所需的结构和常量,也是重建glibc软件包所必需的

  • kernel-doc     包含来自内核源代码的文档文件。各种关于Linux内核和设备以及驱动程序的信息都记录在这些文件当中

  • kernel-firmware  包含对于某些设备及其操作的固件信息文件

  • kernel-debug    包含许多对于内核debug诊断和调试的启用选项,只有当我们需要尝试收集额外的内核错误信息时才应该安装它。它是以牺牲性能为代价

  • kernel-debug-devel  包含内核debug诊断和调试的启用选项,以牺牲性能为代价


CentOS上安装/升级内核

  我将介绍在CentOS下通过yum软件管理程序或RPM包安装/升级内核和通过ELRepo存储库安装/升级最新的内核版本(两种方法)

一、CentOS下通过yum软件管理程序或RPM包安装/升级内核

安装步骤:

1、查看当前内核版本

[root@HMing-Server34 ~]# uname -sr
Linux 2.6.32-431.el6.x86_64

查看系统已安装的内核软件

# yum list installed kernel*

技术分享

在上面输出中,白色高亮部分就是系统已经安装的内核软件包


2、获取CentOS 6发行版的最新内核

对于上面介绍的内核软件包,我们不用全部安装,只安装以下几个包即可

kernel-2.6.32-696.el6.x86_64.rpm
kernel-devel-2.6.32-696.el6.x86_64.rpm
kernel-headers-2.6.32-696.el6.x86_64.rpm
kernel-firmware-2.6.32-696.el6.noarch.rpm
kernel-doc-2.6.32-696.el6.noarch.rpm

我们可以从目前最新版CentOS6.9iso文件中获取以上内核软件包,或者从官方支持的镜像网站中下载,如国内的sohu镜像地址http://mirrors.sohu.com中下载,详细地址为http://mirrors.sohu.com/centos/6.9/os/x86_64/Packages/

技术分享


CentOS7(目前最新版7.3),我们需要以下几个包

kernel-3.10.0-514.el7.x86_64.rpm

kernel-headers-3.10.0-514.el7.x86_64.rpm

kernel-tools-3.10.0-514.el7.x86_64.rpm

kernel-tools-libs-3.10.0-514.el7.x86_64.rpm

kernel-doc-3.10.0-514.el7.noarch.rpm

3、执行安装/升级内核软件包

使用RPM安装方式安装/升级内核

# rpm -Uvh kernel-firmware-2.6.32-696.el6.noarch.rpm
# rpm -Uvh kernel-headers-2.6.32-696.el6.x86_64.rpm
 
# rpm -ivh kernel-devel-2.6.32-696.el6.x86_64.rpm
# rpm -ivh kernel-doc-2.6.32-696.el6.noarch.rpm

# rpm -ivh kernel-2.6.32-696.el6.x86_64.rpm
# rpm -ivh kernel-2.6.32-696.el6.x86_64.rpm --nodeps

安装kernel包,如果有其他依赖软件需要安装,我们可以根据提示安装,或者在rpm后面加上--nodeps选项,意思是解除依赖

技术分享


注意:在安装/升级以上内核软件包时,安装内核软件包kernel-2.6.32-696.el6.x86_64.rpm 时,rpm安装方式选项参数使用的-i而不是-U,两者是有区别的,-i表示安装,-U表示升级,而我们需要保留旧的内核版本,所有这里使用安装的方式。而对于内核软件包kernel-firmwarekernel-headerskernel-develkernel-doc等,对于已安装过的,直接安装可能会报相关错误提示,所以我们可以使用-U选项升级,也可以直接用yum安装,自动安装相关依赖的软件包。


使用yum方式安装/升级内核

  cd进入新下载的内核软件包所在的目录,执行yum localinstall kernel*进行安装,值得提的是,使用这种方式安装同样不会直接替换升级旧内核,安装之后新旧内核并存。所以我们推荐这种使用安装方式。

[root@HMing-Server34 src]# ls kernel-*
kernel-2.6.32-696.el6.x86_64.rpm
kernel-devel-2.6.32-696.el6.x86_64.rpm
kernel-doc-2.6.32-696.el6.noarch.rpm
kernel-firmware-2.6.32-696.el6.noarch.rpm
kernel-headers-2.6.32-696.el6.x86_64.rpm

执行yum localinstall kernel*进行安装

[root@HMing-Server34 src]# yum localinstall kernel*

技术分享


4、安装/升级内核之后,修改系统默认使用的内核

  在CentOS中安装完新内核之后,新的内核成为系统的默认启动选择,我们不需要做任何修改。新的内核在重启系统后生效。如果有必要,比如使用旧内核,我们可以手动修改/boot/grub/grub.conf文件中系统默认使用的内核,修改default=1,表示GRUB使用第二个内核启动系统

技术分享


在重新启动系统的GRUB的引导界面,快速按下任意键,确认新内核默认被使用

技术分享


查看新内核,确认是否正确安装

[root@HMing-Server34 src]# uname -sr
Linux 2.6.32-696.el6.x86_64


二、通过ELRepo存储库安装/升级最新的稳定内核版本

安装步骤

1、CentOS上启用ELRepo存储库

导入公钥

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

CentOS6上安装ELRepo 6存储库:

# rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

CentOS7上安装ELRepo 7存储库:

# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

安装了ELRepo存储库,我们可以通过查找特定的存储库中查找可用的软件包,这里我们查看"elrepo-kernel" 内核软件包的版本信息

# yum --disablerepo "*" --enablerepo "elrepo-kernel" list available

技术分享


2、指定ELRepo存储库安装最新的稳定内核

# yum --enablerepo=elrepo-kernel install kernel-ml

技术分享


安装完成之后,我们即可以在/boot/grub/grub.conf 文件看到存在新安装的内核条目,并修改default=0,指定系统默认启动的内核选项,为4.10.12内核版本,重新启动系统即可生效

技术分享


查看重新引导的GRUB内核启动项界面,确认是否正确使用了指定的新内核

技术分享


同样的,对于在RHEL上安装/升级内核使用上面的两种方法也适用


结语

  在本文中,介绍了内核的几种版本,以及安装/升级新内核版本的两种方法,也是在生产环境中推荐的安装/升级方法。当这两种方法都不满足要求时,我们也可以从https://www.kernel.org/下载内核源码包进行编译安装。



本文出自 “7414593” 博客,请务必保留此出处http://7424593.blog.51cto.com/7414593/1919325

如何在CentOS/RHEL上安装或升级新的内核版本

标签:linux kernel centos

原文地址:http://7424593.blog.51cto.com/7414593/1919325

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!