yum安装的内核版本与我的内核版本不同


32

我试图在Fedora 19中安装VMWare播放器。我遇到了一个问题,即多个用户遇到了VMware播放器找不到内核标头的问题。我已经通过安装了kernel-headerskernel-devel软件包,yum并且出现的文件/usr/src/kernels是:

3.12.8-200.fc19.x86_64

但是,当我执行uname -rFedora内核版本时:

3.9.5-301.fc19.x86_64

这是一个不同的版本。这似乎意味着当我将VMware Player指向内核路径时,会出现以下错误:

C header files matching your running kernel were not found.  
Refer to your distribution's documentation for installation instructions.

如何安装正确的内核,如果没有,我应该在哪里指向VMware /usr/src/kernels/<my-kernel>


只是好奇……您为什么不运行Fedora 19中的最新内核?
rickhg12hs 2014年

不是我自己决定的。我从网站上安装了我可以安装的最新版本。有没有更新内核的方法?
神奇先生福克斯先生2014年

大多数使用软件包管理器或以root身份yum update从命令行执行来使所有软件包保持最新状态。经常执行,并且拥有良好的Internet连接,并不需要很长时间,但是您需要做一些跟上的工作。要使用新内核,您需要在更新完成后重新引导。
rickhg12hs 2014年

Answers:


33

您可以像这样安装正确的内核头文件:

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

此命令将始终安装正确的版本。

$ sudo yum install "kernel-devel-uname-r == $(uname -r)"
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
No package kernel-devel-uname-r == 3.12.6-200.fc19.x86_64 available.
Error: Nothing to do

或者,您可以像这样搜索它们:

$ yum search "kernel-headers-uname-r == $(uname -r)" --disableexcludes=all
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
Warning: No matches found for: kernel-headers-uname-r == 3.12.6-200.fc19.x86_64
No matches found

但是,在存储库中不存在标头的特定版本的地方,我也注意到了这个问题。您可能需要接触Koji才能找到构建的特定版本。

该页面包含该特定版本的内核的所有资产。


2
为什么比这更好yum install "kernel-devel-$(uname -r)"?从您的示例来看,它甚至似乎都不起作用……
2014年

1
@drs-b / c不起作用,没有任何匹配的pkg为我的内核版本提供标头。使用for -uname-r`是一种更可移植的工作方式,它使用与内核版本相关的pkgs。如果您也查看它们的示例,则可在大多数存储库中使用它:rpmfusion.org/Howto/nVidia
slm

这真的很有帮助。我以为我已经安装了正确版本的内核头文件,名称上的差别很小,但是它不正确并且无法构建。上面的命令不仅帮助我获得了实际的命令,还使我对软件包搜索有了更深入的了解。谢谢+1
fkl 2014年

有什么方法可以使yum / dnf每当更新内核时也自动安装新的内核头文件吗?
Shankar Narayanan 2015年

2
@slm我在哪里可以找到关于此语法的任何信息/文件:"kernel-devel-uname-r == $(uname -r)"
瓦迪姆·科托夫


4

您可以通过指定版本和软件包名称来安装软件包的特定版本yum。例如,要为您正在运行的特定内核安装内核开发文件,请键入

yum install kernel-devel-3.9.5-301.fc19

您可以执行类似的命令来获取正确的kernel-headers软件包。


0

在系统更新后安装VMBoxAdditions的情况也发生在我身上。

我必须删除 kernel-devs:

yum remove kernel-devel

然后重新安装它:

yum install kernel-devel

随后奇迹般地它的工作原理。


0

更新内核后,我遇到了同样的事情,Jim的回答很有帮助。要启用[elrepo-kerne]存储库,请转到/etc/yum.repos.d/elrepo.repo文件并为[elrepo-kernel]设置enabled=1(而不是enabled=0),然后根据slm的回答进行更新。之后,反转到,这样yum就不会与此仓库交互。只是要指出,该命令将显示所有启用和禁用的存储库。enabled=0yum repolist all


-2

遵循每个人的建议后,我发现一件事有助于解决此问题。我必须启用[elrepo-kernel]回购。然后,我能够安装正确的头文件和kernel-devel


这不是对该问题的完整答案。您应该使用更多详细信息改善答案,或者将其添加为评论。
很棒的狐狸先生

@FantasticMrFox这是对问题的答案,尽管答案很简短,但没有解释为什么需要此程序,并且它重复了其他人已经说过的内容。
库萨兰达
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.