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

Fan*_*Fox 35 yum fedora kernel vmware

我正在尝试在 Fedora 19 中安装 VMWare 播放器。我遇到了多个用户遇到的问题,其中 VMware 播放器找不到内核头文件。我已经安装了kernel-headerskernel-develyum,出现的文件/usr/src/kernels是:

3.12.8-200.fc19.x86_64
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,uname -r我的 Fedora 内核版本是:

3.9.5-301.fc19.x86_64
Run Code Online (Sandbox Code Playgroud)

这是一个不同的版本。这似乎意味着当我将 VMware player 指向内核路径时,我收到此错误:

C header files matching your running kernel were not found.  
Refer to your distribution's documentation for installation instructions.
Run Code Online (Sandbox Code Playgroud)

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

slm*_*slm 39

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

$ sudo yum install "kernel-devel-uname-r == $(uname -r)"
Run Code Online (Sandbox Code Playgroud)

例子

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

$ 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
Run Code Online (Sandbox Code Playgroud)

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

$ 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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 为什么这比 `yum install "kernel-devel-$(uname -r)"` 更好?从你的例子来看,它甚至似乎都不起作用...... (4认同)
  • @slm 我在哪里可以找到有关此语法的任何信息/文档:`"kernel-devel-uname-r == $(uname -r)"`? (3认同)

red*_*ent 10

分布同步

您的问题可能是“分发同步”。运行此命令解决了我的问题。

yum distro-sync
Run Code Online (Sandbox Code Playgroud)

将已安装的软件包集与可用的最新软件包同步,这可以通过适当地淘汰、升级或降级来完成。( http://man7.org/linux/man-pages/man8/yum.8.html )


drs*_*drs 5

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

yum install kernel-devel-3.9.5-301.fc19
Run Code Online (Sandbox Code Playgroud)

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