首先我们运行两个命令来查看linux内核与 kernel-headers情况
命令一:uname -r (查看内核版本)
命令二:rpm -qa kernel-headers (查看kernel-headers版本)
命令二:rpm -qa kernel-devel (查看kernel-devel版本)
情况一:已经安装了kernel-headers、kernel-devel但是版本不一致
命令一显示:3.10.0-514.el7.x86_64
命令二显示:kernel-headers-3.10.0-862.3.2.el7.x86_64.rpm
命令三显示:kernel-headers-3.10.0-862.3.2.el7.x86_64
yum update kernel
reboot(注意:内核改变必须重启)
查看内核版本是否一致,重新安装vm-tools
情况二:未安装了kernel-headers
命令一显示:3.10.0-514.el7.x86_64
命令二显示:(空)
命令三显示:(空)
由于直接用yum install kernel-headers 会直接安装最新的kernel-headers版本,会有很大几率与kernel内核不一致,kernel-devel也一样。
现在我们有两种方案
方案一:
1、 yum update kernel
2、 yum install kernel-headers
3、 yum install kernel-devel
4、 reboot (注意:内核改变必须重启)
(PS:先把kernel升级至最新版本,再安装的kernel-headers、kernel-devel也就自然会版本一致了)
方案二:
yum install kernel-headers-$(uname -r)
yum install kernel-devel-$(uname -r)
reboot (注意:内核改变必须重启)
(PS:直接安装对应内核的版本,弊端:可能yum可能会找不到相应的老版本,需要自己去找rpm包来安装。
可以用:yum list kernel-headers 命令来查看yum可以安装的版本)
注意事项:内核相关一定要记得 重启,不然不生效
注释:$(uname -r) = 3.10.0-514.el7.x86_64 (PS:获取当前内核版本)
总结:这些操作的目的都是为了保证已经安装kernel-headers、kernel-devel,并且使kernel-headers、kernel-devel与内核版本一致,如果大家还有其他情况可以照着这个思路处理,也可以评论,我看到后会回答或补充博客。本篇文章是在我自己遇到坑之后,看到一些抄来抄去的文章,感觉有必要研究下,让大家少走点坑。