1

This might not be the best place to ask this question (if not please direct me elsewhere) however I have a problem with unmet dependencies when attempting to install Virtualbox 6.0 or 6.1 on a Debian Testing system.

My guess - although I don't know if this is the case - is that libvpx5 is not available in testing for some reason.

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.

Here is my /etc/apt/sources.list

# virtualbox
deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian buster contrib

I assume adding buster is the correct thing to do here, despite the fact that I am tracking the testing branch.

How should I resolve this problem, or is it really impossible to fix?

1
3

That VirtualBox package is intended for Debian 10, not Debian testing (and even then, it’s really designed for Ubuntu). There are two ways to fix this:

  • add Debian 10 to your sources — libvpx5 is available there;
  • add Debian unstable to your sources, which is a good idea anyway when you’re tracking testing, enable contrib, and install the virtualbox package which is available there.

To do either of those, edit /etc/apt/apt.conf to add a line specifying that your default is Bullseye (the current Debian testing):

APT::Default-Release "bullseye";

then add the extra repositories to /etc/apt/sources.list or a new file in /etc/apt/sources.list.d; for example in /etc/apt/sources.list you might end up with

deb http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian unstable main contrib non-free

if you were to track Bullseye and unstable.

See also the best practices in the Debian testing guide.

2
  • Ok thanks for this - can you tell me how to do those things or at least point me in the right direction. I wasn't aware I could track multiple branches. – user3728501 May 14 '20 at 0:11
  • See the update. – Stephen Kitt May 14 '20 at 7:47
1

As pointed out in this answer, libvpx5 is available in Debian 10 (buster). You can install it by adding that to your /etc/apt/sources.list:

deb http://deb.debian.org/debian/ buster main

Then run apt update && apt-get install libvpx5.

However even after installing this and getting past the dependencies problem, I ran into a bunch of mysterious errors trying to install virtualbox-6.1 on bullseye. I don't have the full error text, but it said to look at /var/log/vbox-setup.log for details, which contained:

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

I tried everything I could think of to install it, including installing the unstable channel package and manually installing the generic Linux build, neither of which worked. What finally worked was following the instructions here to get the source of the unstable package, build it from source, and install it. Note that it took a long time to build.

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
0

Since asking this question, I've started using KVM/QEMU

For those reading in future I would recommend ditching virtualbox and using KVM/QEMU with virt-manager

Learning curve is a bit steeper but you can do so much more with this method

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.