Linux内核是一个整体的类Unix计算机操作系统内核。通常我们使用的Linux发行版,如Red Hat、Debian、SUSE等,这些都称为Linux的分发版。一个典型的分发版,是由Linux内核,以及支持的许多由GNU项目提供的应用程序、GNU组件,C标准库,CLI shell,X windows等组成的一个完整操作系统。我们应该要知道的是,Linux的定义仅仅是Linux内核,所有的”Linux”发行版实际上是以Linux为内核的GNU系统的版本。不同的Linux内核版本都有其生命周期,Linux内核组织或Linux发行版厂商只在该日期提供错误或漏洞修复,我们可以从从内核的版本号区分辨别,比如版本3.16.43,该数字3.16表示一个长期版本,43则表示错误修订之后再发行的具体版本号,当然我这里描述的只是提供一个参考价值,更细致的版本还有可能是3.16.43-1这种。值得我们关注的是,任何内核版本错误修复后的再发布版本都应该是我们考虑升级使用的内核版本。

Linux内核版本

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

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

主线、稳定和长期都是活动内核版本,由Linus Torvalds及Linux内核组织维护和释放。 而我们平时所使用的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来更新你的系统。对于Ubuntu、Debian等发行版,使用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.9的iso文件中获取以上内核软件包,或者从官方支持的镜像网站中下载,如国内的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-firmware、kernel-headers、kernel-devel、kernel-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/下载内核源码包进行编译安装。

linux升级到指定内核版本,如何在CentOS/RHEL上安装或升级新的内核版本相关推荐

  1. linux centos7 r安装,如何在CentOS 7上安装R

    R是一种快速增长的开源编程语言和免费环境,专门从事统计计算和图形表示.它得到R统计计算基金会的支持,主要由统计学家和数据挖掘人员用于开发统计软件和执行数据分析. 本教程将教您如何在CentOS 7上安 ...

  2. linux安装joomla,如何在CentOS 7上安装Joomla

    如何在CentOS 7上安装Joomla 版本1.0 作者:Srijan Kishore 本文档介绍了如何在CentOS 7上安装和配置Joomla.Joomla是一款非常受欢迎的获奖开源内容管理系统 ...

  3. 如何在CentOS 7上安装Kubernetes Docker群集

    如何在CentOS 7上安装Kubernetes Docker群集 Kubernetes是一个开源平台,用于管理由Google开发的容器化应用程序.它允许您在集群环境中管理,扩展和自动部署容器化应用程 ...

  4. 如何在CentOS / RHEL上使用yum命令

    如何使用yum命令通过RHN或Internet更新来修复我的红帽企业Linux/CentOS Linux版本5.x/6.x/7.x服务器? 可以在RHEL V5.x下使用 up2date 命令吗? u ...

  5. fortran安装_如何在 CentOS 8 上安装 GCC

    本文最先发布在: 如何在 CentOS 8 上安装 GCC​www.itcoder.tech GNU 编译器集合是一系列用于语言开发的编译器和库的集合,包括: C, C++, Objective-C, ...

  6. centos 使用java_如何在CentOS 8上安装Java

    Java是用于构建不同类型的应用程序和系统的最流行的编程语言之一. Java有两种不同的实现,OpenJDK和Oracle Java,两者之间几乎没有区别,只是Oracle Java具有一些其他的商业 ...

  7. 如何在CentOS 7上安装和使用PostgreSQL

    原作者:米切尔·阿尼卡斯 转载来源:https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql ...

  8. 如何在CentOS 7上安装Varnish Cache

    Varnish cache is a free and opensource high-performance HTTP accelerator used to speed up the rate a ...

  9. 如何在CentOS 8上安装Docker

    介绍 与之前的版本相比,新的CentOS 8版本引入了许多创新元素,一个重大变化是决定不再为Docker提供官方支持. 相反,RHE选择引入用于容器映像创建和管理的内置工具:buildah和podma ...

最新文章

  1. pygame判断鼠标左键_美商海盗船DarkCoreRGB Pro SE无线电竞鼠标评测
  2. CYJian的新春虐题赛
  3. [转]Git分支管理策略
  4. Android开发之关于transformDexArchiveWithExternalLibsDexMergerForDebug java.lang.OutOfMemoryError问题的参考解决方案
  5. clickhouse 重启_篇一|ClickHouse快速入门
  6. 获得国内中国电信,网通,铁通的最新ip段的方法
  7. pytorch学习笔记(二十):Padding-And-Strides
  8. Doris 之Frontend(FE)和Backend(BE)配置
  9. 基于JAVA语言的selenium测试基础总结
  10. Linux 中断详解
  11. 用友nc java_用友NC系统使用过程中常见问题和解决方法!收藏!
  12. OpenMP中的常用函数
  13. 04Selenium剩余部分及练习:爬取京东商品信息
  14. linux搭建WebSphere
  15. 联想服务器重装系统快捷键,联想电脑重装系统按什么快捷键
  16. IDEA 中定义自己的TODO 并设置快捷键
  17. 增强现实入门实战,使用ArUco标记实现增强现实
  18. C语言数组求两个一元多项式,【C/C++】两个一元多项式求和(新)
  19. 最近发现了一个高清计算机电子书和源码的网址
  20. java 手写签名,signature java html5+ 手写签名 源码 Develop 238万源代码下载- www.pudn.com...

热门文章

  1. 苹果耳机连接win10自动断开怎么回事?
  2. 2020年最好用的手机是哪一款_2020年换什么手机好 这几款好看并性价比高
  3. APP压力测试工具使用
  4. HIVE源码阅读(五)
  5. js跳转页面并使用post传参
  6. uniapp热更新,告别云打包
  7. Android答题 通过RecyclerView显示题目和选项并提交答案
  8. ESP32 partition(分区表)(15)
  9. java 访问路径_java获取项目访问路径的方法
  10. 酷狗音乐展示滚动歌词效果的控件实现