我在 virtualbox 版本 6.1.16 中运行 pop os 20.04 lts,并且无法更新 virtualbox-guest-dkms-hwe。这是来自 popshop 的错误:
Error while installing package: installed virtualbox-guest-dkms-hwe package post-installation script subprocess returned error exit status 10
在终端我得到这个:
Loading new virtualbox-guest-6.1.10 DKMS files...
Building for 5.8.0-7630-generic
Building initial module for 5.8.0-7630-generic
ERROR (dkms apport): kernel package linux-headers-5.8.0-7630-generic is not supported
Error! Bad return status for module build on kernel: 5.8.0-7630-generic (x86_64)
Consult /var/lib/dkms/virtualbox-guest/6.1.10/build/make.log for more information.
dpkg: error processing package virtualbox-guest-dkms-hwe (--configure):
installed virtualbox-guest-dkms-hwe package post-installation script subprocess returned error exit status 10
Errors were encountered while processing:
virtualbox-guest-dkms-hwe
E: Sub-process /usr/bin/dpkg returned an error code (1)
有人可以帮我吗?
答案1
VirtualBox 从 6.1.14 版本开始支持 Linux 内核 5.8。目前最新版本是6.1.16,支持内核5.9。从变更日志:
VirtualBox 6.1.16(2020 年 10 月 16 日发布)
[...]
- Linux 主机和来宾:支持内核版本 5.9(bug第19845章)
[...]
VirtualBox 6.1.14(2020 年 9 月 4 日发布)
[...]
- Linux 主机和访客:Linux 内核版本 5.8 支持。
内核 5.8 的 6.1.10 的错误报告如下:#19644。
当您使用版本 6.1.16(在主机上)中的主要组件时,您正在尝试使用版本 6.1.10 的内核组件(此处在客户机上),这可能是唯一受上面所写内容影响的部分。
因为看起来您正在使用的某些软件包甚至在 PopOS 中不可用(但在 Ubuntu 中可用),您必须选择:
坚持使用稳定的 5.4 内核而不是 hwe 风格
等待 PopOS 更新(同时失去 VirtualBox 来宾工具的使用)。
使用PopOS 临时存储库其中似乎包含 VirtualBox 6.1.14 足以解决此问题:
add-apt-repository "deb [arch=amd64] http://apt.pop-os.org/staging/master $(lsb_release -cs) main"
目前(2020-12-07)提供 6.1.14,如此处所示(不要直接下载):
http://apt.pop-os.org/staging/master/pool/focal/virtualbox/
如有疑问,请添加存储库,运行
apt update
但不运行apt upgrade
,安装较新版本的软件包并删除存储库。因为即使现在 PopOS 的 staging-ubuntu 也不包含 6.1.16,请直接使用 Ubuntu 中缺少的 DKMS 软件包(且仅此一个)。由于无论如何这都会从针对此特定情况的源代码进行编译,因此不会出现兼容性问题。除了此软件包(以及其他源或 dkms 软件包)之外,请勿安装来自 Ubuntu 的随机软件包,否则您可能会遇到随机 ABI 兼容性问题。
Ubuntu groovy (20.10) DKMS 软件包当前版本为 6.1.16,可从以下位置获取:
https://packages.ubuntu.com/groovy/virtualbox-guest-dkms-hwe
当新内核发布并且 VirtualBox 出现时,您可能会经常遇到此类问题和你的分布必须赶上。