环境
- 平台:virtualbox虚拟机
- 系统:CentOS 7.6
- 旧内核:3.10.0-957.5.1.el7.x86_64
- 安装的新内核:4.4.176-1.el7.elrepo.x86_64
步骤
查看当前内核
1
uname -a
查看系统版本
1
cat /etc/redhat-release
查看已安装的内核
1
rpm -qa | grep kernel
查看是否有关于内核的源,elrepo(RPM repository for Enterprise Linux package),其实是个企业级Linux的仓库,这里只用到内核包,所以称为内核源
1
yum repolist
安装内核源,官网 http://elrepo.org/tiki/tiki-index.php
1
yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
安装完后重新执行
yum repolist
就能看到内核源已经安装好了查看内核源配置文件,会发现针对内核的仓库是默认关闭的,enable属性的值为0,所以要不就是设置为1,要不就是yum搜索、查询、安装的时候加上
--enablerepo=elrepo-kernel
参数1
cat /etc/yum.repos.d/elrepo.repo
查看新的内核包,lt表示longterm(长时间支持版本),ml表示mainline(主线版本),一般服务端的话还是longterm,出了问题能获得更多的官方支持
1
yum search --enablerepo=elrepo-kernel lt
查看kernel-lt和kernel-ml的信息,可以发现当前lt版本是4.4.176,而ml版本是5.0.0。在写这篇文章的前一天看还只是4.10.xxx,隔一天就有5.0.0版本,哈哈哈,但是我还是装的lt版本
1
yum info --enablerepo=elrepo-kernel kernel-lt kernel-ml
删除旧版本的kernel-tools和kernel-tools-libs,不然在安装时会出现包冲突错误
1
yum remove kernel-tools-3.10.0-957.5.1.el7.x86_64 kernel-tools-libs-3.10.0-957.5.1.el7.x86_64
不删除出现的错误如下
安装kernel-lt、kernel-lt-headers、kernel-lt-devel、kernel-lt-tools、kernel-lt-tools-libs,其中只安装kernel系统就能跑了,其他的有可能其他软件需要使用到的而已,看个人选择。文章后面有不同包的一些说明
1
yum install --enablerepo=elrepo-kernel -y kernel-lt kernel-lt-headers kernel-lt-devel kernel-lt-tools kernel-lt-tools-libs
查看当前可用的内核列表
1
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
查看当前使用的内核,查看GRUB_DEFAULT属性,该值对应的数字就是第11步内核列表前面的序号,这里是
save
,表示上次开机记住的,由于之前还没有新的内核,所以这里是使用1 : CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core)
这个版本的内核1
cat /etc/default/grub
如果当前使用的内核不是所希望的,可使用grub2-set-default命令进行设置,不要直接修改
/etc/default/grub
文件,这里设置为0表示下次重启使用0 : CentOS Linux (4.4.176-1.el7.elrepo.x86_64) 7 (Core)
这个内核(PS:如果是CentOS 7.0以下的,使用grub来做系统引导的)1
grub2-set-default 0
重启,使内核配置生效
1
reboot
重新查看内核版本,就会发现内核已经是刚刚下载的4.4.176内核(kernel-lt版本)
1
uname -a
删除旧内核(可选操作),通过
rpm -qa | grep kernel
查看已有内核,接着使用yum remove
进行删除1
yum remove kernel-3.10.0-957.5.1.el7.x86_64 kernel-devel-3.10.0-957.5.1.el7.x86_64
重建grub2的配置文件(可选操作)
1
grub2-mkconfig -o /boot/grub2/grub.cfg
这时重新查看可用的内核列表,就没有了旧内核可以选择了
内核相关的包说明
- kernel-lt
- The Linux kernel. (The core of any Linux-based operating system.)
- 最核心的包,所有Linux系统的基础
- kernel-lt-devel
- Development package for building kernel modules to match the kernel.
- 内核开发包,更多是提供给内核开发人员开发内核的一些功能模块
- kernel-lt-doc
- Various bits of documentation found in the kernel sources.
- 内核包的指引文档
- kernel-lt-headers
- Header files of the kernel, for use by glibc.
- 内核的头文件,一般其他应用需要调用内核能力就要引入这些头文件
- kernel-lt-tools
- Assortment of tools for the kernel.
- 内核级别的一些工具
- kernel-lt-tools-libs
- Libraries for the kernel tools.
- 内核级别工具所依赖的包
- kernel-lt-tools-libs-devel
- Development package for the kernel tools libraries.
- 内核级别工具开发所需的依赖包
(•̀ᴗ•́)و ̑̑