执行摘要
您可能要安装名为的软件包linux-headers-generic
。
如果运行uname -r
为您提供了比其他一些generic
版本号后,替代,对于generic
在linux-headers-generic
。(这可能是server
或generic-pae
在某些Ubuntu的发行版的一些设施,还有其他一些偶然的内核“口味”。)
由于您很可能需要此驱动程序,因此可以构建驱动程序(该驱动程序可能是自动化的,因此您可能不会自己“构建”驱动程序),因此最好也安装该驱动程序build-essential
以使其具有所有必要的工具。
完整说明
据我所知,没有操作系统提供名为的软件包Linux-kernel-devel
。这有两个原因:
- 对于任何类似Unix的操作系统,以大写字母开头的软件包名称极为罕见。
- GNU / Linux操作系统通常会命名其与内核相关的软件包,以便这些名称包含“ kernel”或“ linux ”一词,但不能同时包含两者。(在Ubuntu上,它是linux一词。)
在使用Red Hat软件包管理器(rpm
)和相关实用程序的系统上,与内核相关的软件包通常具有kernel
其软件包的名称。例如,Mageia有许多名称以开头kernel
和结尾的软件包devel
。这些软件包几乎总是(在Mageia和具有它们的任何操作系统上)提供从源代码构建驱动程序以供内核使用所需的头文件。他们还可能提供相关的实用程序以方便使用。这些软件包:
- 千万不能提供内核的完整的源代码。这是由其他软件包提供的。
- 不要不提供预编译的,可用的内核。这是由其他软件包提供的。
- 千万不能提供编译器或其他大多数目的构建工具。这些也由其他软件包提供。
在Ubuntu中,如此处的列表所示,提供内核标头的软件包的名称以开头linux-headers
。通常,要安装的正确软件包是linux-headers-generic
。但是,要确定要安装哪个软件包以获取与您当前正在运行的内核相对应的标头,请运行:
uname -r
您将获得类似于以下内容的输出:
3.5.0-36-generic
也就是说,您将拥有一个版本号(将包括.
字符,通常至少包含一个-
),后跟一个-
,然后是一个或多个单词,表示您正在运行的是哪种内核。
如果您只是想立即运行特定版本的标头,则可以安装名称为linux-headers-*
where 的软件包,其中*
包含的完整输出uname -r
。例如,在我的系统上,我可以运行:
sudo apt-get update && sudo apt-get install linux-headers-3.5.0-36-generic
我什至可以自动化它:
sudo apt-get update && sudo apt-get install linux-headers-`uname -r`
这些方法是等效的,但通常不是最佳方法。
相反,你通常会想要安装的综合包总是提供最新的内核头文件作为升级(永久依赖于任何头包是最新的)。这与您编译运行的内核的安装和更新方式相似。为此,仅查看版本号后面uname -r
的输出部分。也就是说,如果给您,请只参与其中。uname -r
3.5.0-36-generic
generic
然后安装名为linux-headers-*
where 的软件包,然后将其*
替换为该软件包。因此,在我的系统上,它将是linux-headers-generic
一种安装方式:
sudo apt-get update && sudo apt-get install linux-headers-generic
对于大多数人来说是linux-headers-generic
,但是这取决于Ubuntu的发布你正在运行,什么结构和类型的设备你运行它,以及它是如何安装和配置,其他可能性包括generic-pae
,highbank
,omap
,server
,和virtual
。
相关配套
头文件有助于开发和编译/构建使用由其头文件正在使用的软件提供的功能的软件。您可能需要内核头文件的最常见原因是,如果要从源代码构建驱动程序(内核模块)。某些应用程序(例如VMware和VirtualBox)有时会需要此功能,并将自己自动构建。
除了头文件之外,要构建软件,还需要编译器和其他工具。为了最大程度地提高您拥有必要工具的可能性,最好同时安装该build-essential
软件包。
任何人都需要真正的完整内核源代码的情况很少见(当然,除非您打算从源代码构建内核)。但是,如果您确实需要它,则也必须安装另一个软件包。在Ubuntu中,用于完整内核源代码的软件包称为linux-source
。(这与Debian / Ubuntu命名软件包的约定保持一致,该软件包提供Linux内核linux
而非的实质部分kernel
。)
如果仍然有问题
如果您尝试安装这些软件包中的任何一个,但是遇到问题,并且需要帮助,那么您将必须包含来自Terminal的完整且准确的文本,包括键入命令的行。最好的方法是编辑您的问题,但是如果问题太长,则可以将其粘贴到http://paste.ubuntu.com之类的位置,并提供我们可以访问它的URL。
如果您对此问题发表评论,我们会收到通知。您可以编辑问题,也可以在此处进行评论,以引起对问题中所提供信息的注意。(重要的信息最好放在问题和答案中。)祝您好运!