web-dev-qa-db-ja.com

VirtualBoxカーネルモジュールのコンパイルに失敗したLubuntu 16.04

新規インストールlubuntu 16.04にvirtualboxをインストールしようとしていますが、次のエラーが表示されます。

anonprophet@anonbook:~/Downloads$ Sudo dpkg -i virtualbox-5.0_5.0.20-106931-Ubuntu-xenial_AMD64.deb 
[Sudo] password for anonprophet: 
(Reading database ... 155035 files and directories currently installed.)
Preparing to unpack virtualbox-5.0_5.0.20-106931-Ubuntu-xenial_AMD64.deb ...
Unpacking virtualbox-5.0 (5.0.20-106931~Ubuntu~xenial) over (5.0.20-106931~Ubuntu~xenial) ...
Setting up virtualbox-5.0 (5.0.20-106931~Ubuntu~xenial) ...
addgroup: The group `vboxusers' already exists as a system group. Exiting.
Stopping VirtualBox kernel modules ...done.
Recompiling VirtualBox kernel modules ...failed!
  (Look at /var/log/vbox-install.log to find out what went wrong)
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) ...
Processing triggers for shared-mime-info (1.5-2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu5) ...
Processing triggers for mime-support (3.59ubuntu1) ...

/var/log/vbox-install.logからのこのログ

make KBUILD_VERBOSE=1 SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 CONFIG_MODULE_SIG$
Arch/x86/Makefile:133: stack-protector enabled but compiler support broken
Arch/x86/Makefile:148: CONFIG_X86_X32 enabled but no binutils support
Makefile:670: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-str$
make[1]: gcc: Command not found
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (       $
echo >&2;                                                       \
echo >&2 "  ERROR: Kernel configuration is invalid.";           \
echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are$
echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it$
echo >&2 ;                                                      \
/bin/false)
mkdir -p /tmp/vbox.0/.tmp_versions ; rm -f /tmp/vbox.0/.tmp_versions/*
make -f ./scripts/Makefile.build obj=/tmp/vbox.0
  gcc -Wp,-MD,/tmp/vbox.0/linux/.SUPDrv-linux.o.d  -nostdinc -isystem   -I./arc$
/bin/sh: 1: gcc: not found
scripts/Makefile.build:258: recipe for target '/tmp/vbox.0/linux/SUPDrv-linux.o$
make[2]: *** [/tmp/vbox.0/linux/SUPDrv-linux.o] Error 127
Makefile:1396: recipe for target '_module_/tmp/vbox.0' failed
make[1]: *** [_module_/tmp/vbox.0] Error 2
Makefile:298: recipe for target 'vboxdrv' failed
make: *** [vboxdrv] Error 2

このvirtualboxは「VirtualBoxがカーネルモジュールがロードされていないことを訴えている」ため、vagrant boxを実行できません。

dkmsとビルドツールをインストールする必要があります。 dpkgは依存関係をインストールしないので、それを使用してdebianパッケージを単独でインストールするのは悪い考えだと思います。

場合によっては、作成した問題をapt-getで修正する方が簡単な場合があります。これにより、dpk -iの実行後に欠落している依存関係がインストールされます。次に、virtualbox 5パッケージを削除して再インストールします。

$ Sudo apt-get -f install
$ dpkg -r virtualbox*.deb
$ dpkg -i virtualbox*.deb

デフォルトのvirtualboxパッケージには多くの依存関係が必要です。最初に、ダウンロードしたパッケージの依存関係をリストし、次にapt-getを使用してインストールします。

$ dpkg -I virtualbox*.deb
$ Sudo apt-get install dkms linux-header-generic ...

その後、パッケージのインストールに進むことができます。

$ Sudo dpkg -i  virtualbox*.deb

Dpkgを使用する代わりにPPAを使用することをお勧めします。 ( https://linuxpropaganda.wordpress.com/2016/07/07/install-virtualbox-from-ppa-in-xubuntu-16-04/

$ wget -q http://download.virtualbox.org/virtualbox/debian/Oracle_vbox_2016.asc -O- | Sudo apt-key add -
$ Sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" >> /etc/apt/sources.list.d/virtualbox.list' 
$ Sudo apt-get update
$ Sudo apt-get install virtualbox-5.2
3
Iyad K