主要问题
我无法运行任何虚拟化软件。即 Vmware 或 Virtualbox。因为它们都要求我安装(或产生一些导致的错误)安装 build essentials 和最新的 linux 头文件。
所以我的问题始于以下问题
当我尝试使用更新时
sudo apt-get install linux-headers-`uname -r`
我得到的是
正在读取软件包列表... 完成 正在构建依赖关系树
正在读取状态信息... 完成 软件包 linux-headers-3.13.0-45-generic 不可用,但被另一个软件包引用。这可能意味着该软件包缺失、已过时或只能从其他来源获得E:软件包‘linux-headers-3.13.0-45-generic’没有安装候选项
当我尝试通过运行来确定我拥有什么时
apt-cache search linux-headers-
我明白了
我尝试了 Google 上能找到的大部分方法,但都没有什么帮助。因此希望在这里找到一些解决方案。
答案1
13.13 似乎是 trusty 的旧内核?而 3.16 是 utopic 附带的内核。
如果您do-release-upgrade
最近运行并且仍然使用旧内核,请注意所有旧存储库(旧内核头所在的位置)都已被禁用/清除/etc/apt
。
通常,版本升级会使内核小版本至少增加 2 个版本(从 3.13 到 3.16,以及从 vivi 到 3.18)。
此时您有两个选择。要么使用新内核,安装其标头,然后重建缺失的驱动程序,要么从旧 ubuntu 发行版将存储库列表重新添加到 apt,然后安装缺失的标头。
答案2
我遇到了类似的问题 - 无法运行 virtualbox VM,并且我安装的内核版本似乎比我安装的内核头文件旧。(但与问题中的精确版本号不同。)(我从 Ubuntu 14.04 升级到 14.10 再升级到 15.04 后进入这种状态)
我发现在启动时的 GRUB 菜单中,在“Ubuntu 的附加选项”下,我可以选择与我安装的标头匹配的较新的内核。
选择该菜单项,然后启动,让我能够按照 virtualbox 记录的流程重新编译 virtualbox 内核模块,然后启动我的 virtualbox VM。
接下来我调整了我的 GRUB 设置以使该内核选择成为默认选择,如下所述:http://statusq.org/archives/2012/10/24/4584/
答案3
尝试使用sudo apt --fix-broken install
答案4
我使用以前的内核解决了这个问题!
user283885 正在提供很好的解决方案。
我尝试了其他(以前的)内核。您可以尝试更新或以前的内核(从 apt-cache 列表 3.16* 中可用的内核中)。
这是我做的测试:
我的实际内核:3.13.0-45-generic uname -a Linux pc-01 3.13.0-45-generic #74~precise1-Ubuntu SMP Thu Jan 15 20:21:55 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
重新启动并选择 3.13.0-44-generic(之前安装的内核)
然后我安装 linux-headers-3.13.0-44-generic、virtualbox-4.3 和 DKMS
之后我运行命令来启用驱动程序 /etc/init.d/vboxdrv 设置
对我来说一切都很好!(谢谢 David Foerster。我现在试着让我的帖子更容易理解)。