空内核目录,但已安装内核头文件


19

主机-Windows 7

访客-CentOS

我正在尝试kernel-headers使用using 进行安装,yum因为在安装过程中,vmware-tools我收到一条消息,询问3.10.0-229.7.2.e17.x86_64的内核头文件的路径

运行yum install kernel-headers将返回已安装的软件包kernel-headers-3.10.0-229.7.2.e17.x86_64和最新版本。但是目录/usr/src/kernels为空。

内核头文件是否安装在其他地方?还是我应该要求yum安装其他东西?

提供给vmware-tools的内核头文件的路径

Searching for a valid kernel header path...
The path "" is not a valid path to the 3.10.0-229.7.2.e17.x86_64 kernel headers.
Would you like to change it? [yes]

提供路径/usr/include/linux将再次给出相同的响应,但用“”替换为提供的路径。


1
检查的输出rpm -ql kernel-headers; 我认为它将文件放在/ usr / include / linux中,但是我可能已经过时了。如果您能指出您提供给vmware-tools安装程序的路径以及返回的内容,那将是很好的。
杰夫·谢勒

Answers:


8

安装用于构建内核模块的所有必需依赖项的正确软件包是kernel-devel(有关更多信息,请参见CentOS文档。)

标头未安装在中/usr/src/kernels,而是安装在下面的多个目录中/usr/include(C标头文件的默认位置)。您可以使用以下命令列出kernel-headers安装的软件包的内容:

rpm -ql kernel-headers

就是这样 我早些时候到过该页面,但误读为“如果您确实需要完整的源代码,请使用kernel-devel”。谢谢
Kvothe 2015年

23

我有同样的问题。经过大量的搜索,此解决方案对我有用。它首先确定已安装的内核版本,然后使用该确切版本安装内核头文件包。

sudo yum install "kernel-devel-uname-r == $(uname -r)"

这适用于Surface Book和VMWare配置。
ThinkCode '16

在centos 7上工作,花了两个多小时才结束..谢谢!
h0x91B

终于...。在CentOS7上工作。非常感谢
VM_AI

有效。谢谢。不知道内核头文件是否是此开发的一部分。
Murali Mopuru

4

在下面给出的CentOS版本7中,是内核头文件的路径。

/lib/modules/3.10.0-327.36.2.el7.x86_64/build/include

运行yum install kernel-headers两次(更新为最新版本)后,问题得到解决。确保正在运行的内核版本和内核标头版本相同。我的内核版本是3.10.0-327.36.2.el7.x86_64


如此简单的答案值得更多的投票。
WesternGun

2

我遇到了同样的问题,上述解决方案对我不起作用。这可能是我正在使用的CentOS 7的构建。
这是为我解决问题的原因...

安装内核头文件

yum -y install kernel-devel

设置符号链接,以便vmware工具可以找到version.h

export kernel_headers=`ls -hd /usr/src/kernels/3*`
sudo ln -s ${kernel_headers}/include/generated/uapi/linux/version.h ${kernel_headers}/include/linux/version.h

2

我安装了kernel-devel软件包,但事实证明,这些头文件的内核版本与实例上运行的内核版本不同。为了解决这个问题,我跑了

sudo yum upgrade

并重新启动,然后安装vmware-tools,不必大惊小怪。


2

我遇到了完全相同的问题。

就我而言,我只需要删除kernel-dev *并再次安装它:

yum -y remove kernel-devel*
yum -y install kernel-devel*

0

我相信我找到了解决方法。

我一直在阅读建议(甚至在VMWare的网站上),这些建议建议安装open-vm-tools而不是VMWare工具。

yum install open-vm-tools

当然,有一些警告,安装后,请记住重新启动虚拟机。

另外,现在,它代替了通常在vSphere中显示的绿色复选标记,而是显示了灰色的“?” 但可以识别工具正在运行,并显示IP地址,正在运行的OS以及“正在运行(第三方/独立)”屏幕。

因此希望这会对某人有所帮助。我花了两天时间,终于找到了这个答案,它对我有用,以CentOS 7.2作为来宾操作系统运行ESXi 5.1和vCenter。


在某些情况下,open-vm-tools并不是vmware工具的替代品。例如。open-vm-tools不支持hgfs在来宾和主机之间共享文件。VMware支持在CentOS 7 HGFS
拉夫

0

为了回答这个问题,内核源代码安装在/ usr / src / kernels /下。kernel-devel是要安装的软件包。

为了提供解决方案,该问题的原因是所安装的内核较旧,并且kernel-devel在存储库中有更新。因此,安装kernel-devel会安装较新内核的源代码,因此vmware tools config脚本找不到源代码。有两种可能的解决方案。

  1. 更新内核,以便kernel和kernel-devel都是新的。

    sudo yum upgrade

重新引导,以便加载新内核,然后运行vmware tools config脚本。

  1. 更新内核并不总是可行的。如果是这种情况,请安装与安装的内核版本相同的kernel-devel版本。

    sudo yum install "kernel-devel-uname-r == $(uname -r)"

0

这是对我而言全新的最小Centos安装的工作方式:

sudo yum update
sudo yum upgrade
sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.