请问内核头文件的路径是什么,这样我才能安装 VMware?

我成功在我的Ubuntu 11.04上安装了VMware捆绑包,但当我打开它时,它会给我这个窗口

enter image description here

我不知道这些C头文件的路径。

1你正在使用哪个内核(使用uname -a命令检查)?因为在11.04升级ubuntu时,它悄悄地将我的内核从linux-generic切换到了linux-generic-pae,而没有安装相关的头文件,这使用了一组不同的Linux头文件。根据下面的三个回答,使用apt-get是解决问题的正确方法,你只需要确保内核头文件是正确的。 - crasic
2这似乎是正确的方向,但还是有些东西缺失。创建这些链接有助于跳过对2.6.38.8_generic内核头文件的提示,但当我运行VMWare Workstation(6.5.5)时,会出现一个错误提示说"无法构建内核模块。请查看日志文件/tmp/vmware-root/setup-22414.log",然后当我查看日志文件时,只是描述了构建尝试,却没有显示任何错误,这很奇怪。所以我尝试了捷径并重新安装捆绑包,看看在创建链接之后这样做是否能解决问题。但事实证明没有。我陷入困境了。有什么想法吗?我以为结合... - user19092
2sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h - Qasim
sudo apt-get install build-essential - Qasim
8个回答

cd /lib/modules/$(uname -r)/build/include/linux
sudo ln -s ../generated/utsrelease.h
sudo ln -s ../generated/autoconf.h
sudo ln -s ../generated/uapi/linux/version.h 

添加符号链接后,路径为/usr/src/linux-headers-$(uname -r)/include(感谢@Kariem!)

8FYI,我不得不按照这些确切的步骤来使VMWare Workstation与Ubuntu 13.04配合工作。 - Jason Mock
9谢谢!只是为了明确一下,因为我没有从答案中读到这个:在添加符号链接之后,路径是/usr/src/linux-headers-$(uname -r)/include - Kariem
工作于13.04版本。 - Akber Choudhry
3你需要那些东西的事实是愚蠢的 - 非常感谢这个。 - Griwes
这个答案和Kariem的评论非常宝贵。对我来说,这解决了在Ubuntu 13.04中出现的“无法更新运行时文件夹共享状态:在客户操作系统内挂载共享文件夹文件系统时发生错误”的问题。 - amateur barista
我也用这个答案在Linux Mint 15上安装了VMWare工具。 - Travis Bear
3这个方法很有效!谢谢。我的问题是:你是怎么找出具体该做什么的? - pepoluan
2@pepoluan 一些论坛帖子,阅读源代码并尝试了数百次 :) - Zhe Li
4这个问题在14.04版仍然存在。真是令人吃惊。 - Mikey T.K.
如果您尝试此答案中的解决方案,并在尝试 "cd" 后出现 "没有该文件或目录" 错误,请参考下面 @manikandan 的答案。安装了头文件后,该目录应该存在。请参阅:http://askubuntu.com/a/65314/28555 - JW.
当在CentOS 7上遇到这个问题时(我知道,这是一个Ubuntu的网站,但是谷歌把我带到这里并且很有帮助),我首先需要使用yum install kernel-devel命令安装内核开发包,然后按照Zhe提供的步骤完成,接着include目录会在/usr/src/kernels/$(uname -r)/include中找到。 - dmohr
在尝试在旧的ESXi vSphere 5.x系统和CentOS 7.9上安装VMware工具时遇到了类似的问题。解决方案相同。在这里提及,以防其他人在面对类似组合时遇到困难。 - mhucka

以下命令对您非常有帮助:
步骤1:按下 Ctrl + Alt + T 步骤2:输入 sudo apt-get install linux-headers-$(uname -r) 步骤3:内核头文件的路径为 /usr/src/linux-headers-$(uname -r)/include

这个答案在我的机器上有效,Debian 8.3 i386。 - Kayla

在安装Vmware Workstation之前,您需要先安装build-essential和linux headers。
   sudo apt-get install build-essential linux-headers-$(uname -r)

然后
 sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h

安装好了,就是这样,现在安装VMware Workstation。
 path to vm# sh Vm***.bundle

sudo apt-get install build-essential linux-headers-$(uname -r) 真是太神奇了。解决了我的问题,谢谢。 - Mike
+1 我缺少了 build-essentials。这是这里最好的答案。 - Mark E. Haase

有一些文件在安装程序不期望的位置,我运行这个并且它能正常工作:
ifrantz@ifrantz:~$ cat ~/update_version.sh 
#!/bin/bash

cd /lib/modules/$(uname -r)/build/include/linux
sudo ln -s ../generated/utsrelease.h
sudo ln -s ../generated/autoconf.h
sudo ln -s ../generated/uapi/linux/version.h 

我的第一个猜测是你没有安装头文件。你需要安装适当的linux-headers软件包。很可能,你需要安装linux-headers-generic。然而,如果你运行的内核不是linux-generic,那就安装该内核的linux-headers软件包。
如果你已经安装了头文件,它们应该在/usr/src目录下。

你能告诉我这些标题包的名称吗? - Wazery
1我不确定你具体在问什么。你可以在Synaptic中搜索,找出你的机器上正在运行的内容。很可能,你的内核是linux-generic。如果是这样的话,安装linux-headers-generic,它会作为依赖项引入正确的软件包。每次内核更新时,确切的头文件软件包(以及文件系统中的路径)都会发生变化。查看你的系统,找出正在使用的内容。 - Scott Severance
apt-get install linux-headers-$(uname -r) - Owl
@owl,问题在于每次版本更改时,您都必须重新安装头文件。如果安装基本的Linux头文件包,它始终是最新的。 - Scott Severance

问题可以通过两个步骤来解决,在安装vmware工作站9.X.X之后(在终端中):
  1. sudo apt-get install gcc

  2. sudo vmware-modconfig --console --install-all --appname="VMware Player" --icon="vmware-player"


这个加上上面答案中的build-essentials建议解决了我的问题。谢谢! - DARKGuy

CTRL+ALT+t

sudo apt-get install linux-headers-generic


3linux-headers-generic 已经是最新版本。 0 升级,0 新安装,0 删除和 1 未升级。 - Wazery
在安装之前,你可能需要执行sudo apt-get update命令。 - Vanni Totaro

遇到了同样的问题,我正在运行内核版本3.2.0-29,但在/usr/src/目录下只有linux-headers-3.2.0-35。
user@ubuntu:/usr/src$ ls -l
drwxr-xr-x 24 root root 4096 Jan  5 11:17 linux-headers-3.2.0-35
drwxr-xr-x  7 root root 4096 Jan  5 11:17 linux-headers-3.2.0-35-generic

user@ubuntu:/usr/src/linux-headers-3.2.0-35/include$ uname -a

Linux ubuntu 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_6                                                                                4 x86_64 x86_64 GNU/Linux

user@ubuntu:/usr/src$ sudo apt-get install linux-headers-3.2.0-29-generic

user@ubuntu:/usr/src/$ cd /tmp/vmware-tools-distrib
user@ubuntu:/tmp/vmware-tools-distrib$ sudo ./vmware-install.pl
<kept hitting enter>

Enjoy, --the VMware team

done and done