这可能不是问这个问题的最佳地点(如果不是,请指导我到其他地方),但是当我尝试在 Debian 测试系统上安装 Virtualbox 6.0 或 6.1 时,我遇到了未满足的依赖项的问题。
我的猜测 - 虽然我不知道情况是否如此 - 是由于某种原因libvpx5
不可用。testing
sudo apt install virtualbox-6.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
virtualbox-6.0 : Depends: libvpx5 (>= 1.6.0) but it is not installable
Recommends: libsdl-ttf2.0-0 but it is not going to be installed
Recommends: linux-headers-generic but it is not installable or
linux-headers-generic-pae but it is not installable or
linux-headers-686-pae but it is not installable or
linux-headers-amd64 but it is not going to be installed or
linux-headers-2.6-686 but it is not installable or
linux-headers-2.6-amd64 but it is not installable or
linux-headers but it is not installable
Recommends: linux-image but it is not installable
E: Unable to correct problems, you have held broken packages.
这是我的/etc/apt/sources.list
# virtualbox
deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian buster contrib
我认为添加buster
是在这里做的正确的事情,尽管我正在跟踪测试分支。
我该如何解决这个问题,还是真的无法解决?
答案1
该 VirtualBox 软件包适用于 Debian 10,而不是 Debian 测试(即使如此,它实际上是为 Ubuntu 设计的)。有两种方法可以解决此问题:
- 将 Debian 10 添加到您的源中 —
libvpx5
在那里可用; - 将 Debian不稳定添加到您的源代码中,这在您跟踪测试、启用
contrib
和安装时无论如何都是一个好主意包裹virtualbox
那里可以找到。
要执行其中任一操作,请编辑/etc/apt/apt.conf
并添加一行,指定您的默认值是 Bullseye(当前的 Debian 测试):
APT::Default-Release "bullseye";
然后添加额外的存储库/etc/apt/sources.list
或新文件/etc/apt/sources.list.d
;例如/etc/apt/sources.list
你可能最终会得到
deb http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian unstable main contrib non-free
如果你要跟踪靶心并且不稳定。
另请参阅以下最佳实践Debian 测试指南。
答案2
正如指出的这个答案,libvpx5
在 Debian 10 中可用 ( buster
)。您可以通过将其添加到您的/etc/apt/sources.list
:
deb http://deb.debian.org/debian/ buster main
然后跑apt update && apt-get install libvpx5
。
virtualbox-6.1
然而,即使在安装了这个并解决了依赖关系问题之后,我在尝试在 Bullseye 上安装时遇到了一堆神秘的错误。我没有完整的错误文本,但它说要查看/var/log/vbox-setup.log
详细信息,其中包含:
Building the main VirtualBox module.
Error building the module:
make V=1 CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/5.10.0-1-amd64/build M=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -j16 modules
make[1]: warning: -j16 forced in submake: resetting jobserver mode.
make -C /usr/src/linux-headers-5.10.0-1-amd64 -f /usr/src/linux-headers-5.10.0-1-common/Makefile modules
make -f /usr/src/linux-headers-5.10.0-1-common/scripts/Makefile.build obj=/tmp/vbox.0 \
single-build= \
need-builtin=1 need-modorder=1
...
make[2]: *** [/usr/src/linux-headers-5.10.0-1-common/Makefile:1817: /tmp/vbox.0] Error 2
make[1]: *** [/usr/src/linux-headers-5.10.0-1-common/Makefile:185: __sub-make] Error 2
make: *** [/tmp/vbox.0/Makefile-footer.gmk:117: vboxdrv] Error 2
我尝试了所有我能想到的方法来安装它,包括安装渠道套餐不稳定并手动安装通用 Linux 构建,这两个都不起作用。最终起作用的是按照说明进行操作这里获取不稳定软件包的源代码,从源代码构建它并安装它。请注意,构建花了很长时间。
apt-get source virtualbox=6.1
apt-get build-dep virtualbox=6.1
dpkg-source -x virtualbox_6.1.16-dfsg-6.dsc
cd virtualbox-6.1.16-dfsg
dpkg-buildpackage -rfakeroot -us -uc -b -nc
dpkg -i ../virtualbox-dkms_6.1.16-dfsg-6_amd64.deb ../virtualbox-source_6.1.16-dfsg-6_amd64.deb
dpkg -i ../virtualbox_6.1.16-dfsg-6_amd64.deb
答案3
自从问这个问题以来,我开始使用 KVM/QEMU
对于那些将来阅读的人,我建议放弃 virtualbox 并使用 KVM/QEMUvirt-manager
学习曲线有点陡峭,但你可以用这种方法做更多的事情