无法安装 CentOS VirtualBox 来宾添加

无法安装 CentOS VirtualBox 来宾添加

我使用的是 Manjaro Linux,并且在 VirtualBox 中安装了 CentOS 7。当我尝试安装 VirtualBox Guest Additions 时,出现以下错误。

Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.28 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Removing installed version 5.1.28 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Starting the VirtualBox Guest Additions.
Failed to set up service vboxadd, please check the log file
/var/log/VBoxGuestAdditions.log for details.
Press Return to close this window...

内容/var/log/VBoxGuestAdditions.log如下。

vboxadd.sh: failed: Look at /var/log/vboxadd-install.log to find out what went wrong.
vboxadd.sh: failed: Look at /var/log/vboxadd-install.log to find out what went wrong.
vboxadd.sh: failed: modprobe vboxguest failed.

内容/var/log/vboxadd-install.log如下。

grep: /lib/modules/3.10.0-693.2.2.el7.x86_64/build/include/linux/version.h: No such file or directory
make KBUILD_VERBOSE=1 CONFIG_MODULE_SIG= -C /lib/modules/3.10.0-693.2.2.el7.x86_64/build SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -j2 modules
arch/x86/Makefile:96: stack-protector enabled but compiler support broken
Makefile:641: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
make[1]: gcc: Command not found
cat: write error: Broken pipe
make[1]: warning: -jN forced in submake: disabling jobserver mode.
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 missing.";\
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/.VBoxGuest-linux.o.d  -nostdinc -isystem  -I./arch/x86/include -Iarch/x86/include/generated  -Iinclude -I./arch/x86/include/uapi -Iarch/x86/
  include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-
  strict-aliasing -fno-conmon -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -std=gnu89 -02 -m64 -mno-mmx -mno-sse -mno-red-
  zone -mcmodel=kernel -maccumulate-outgoing-args -Wframe-larger-than=2048 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fstack-protector-strong -fno-omit-
  frame-pointer -fno-optimize-sibling-calls -g -pg -Wno-declaration-after-statement -include /tmp/vbox.0/include/VBox/VBoxGuestMangling-h -fno-pie -I/Lib/modules/
  3.10.0-693.2.2.el7.x86_64/build/include -I/tmp/vbox.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux -I/tmp/vbox.0/vboxguest/ -I/tmp/vbox.0/vboxguest/include -I/tmp/
  vbox.0/vboxguest/rOdrv/linux -D__KERNEL__ -DMODULE -DVBOX -DRT_OS_LINUX -DIN_RINGO -DIN_RT_RO -DIN_GUEST -DIN_GUEST_RO -DIN_MODULE -DRT_WITH_VBOX -DVBGL_VBOXGUEST -
  DVBOX_WITH_HGCM -DRT_ARCH_AMD64 -DVBOX_WITH_64 BITS GUESTS  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(VBoxGuest_linux)"  -
  D"KBUILD_MODNAME=KBUILD_STR(vboxguest)" -c -o /tmp/vbox.0/.tmp_VBoxGuest-linux.o /tmp/vbox.0/VBoxGuest-linux.c
  gcc -Wp,-MD,/tmp/vbox.0/.VBoxGuest.o.d  -nostdinc -isystem  -I./arch/x86/include -Iarch/x86/include/generated  -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/
  generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-
  aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -std=gnu89 -02 -m64 -mno-mmx -mno-sse -mno-red-zone -
  mcmodel=kernel -maccumulate-outgoing-args -Wframe-larger-than=2048 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fstack-protector-strong -fno-omit-frame-
  pointer -fno-optimize-sibling-calls -g -pg -Wno-declaration-after-statement -include /tmp/vbox.0/include/VBox/VBoxGuestMangling.h -fno-pie -I/lib/modules/
  3.10.0-693.2.2.el7.x86_64/build/include -I/tmp/vbox.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux -I/tmp/vbox.0/vboxguest/ -I/tmp/vbox.0/vboxguest/include -I/tmp/
  vbox.0/vboxguest/r0drv/linux -D__KERNEL__ -DMODULE -DVBOX -DRT_OS_LINUX -DIN_RINGO -DIN_RT_RO -DIN_GUEST -DIN_GUEST_RO -DIN_MODULE -DRT_WITH_VBOX -DVBGL_VBOXGUEST -
  DVBOX_WITH_HGCM -DRT_ARCH_AMD64 -DVBOX_WITH_64_BITS_GUESTS  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME-KBUILD_STR(VBoxGuest)"  -
  D"KBUTLD_MODNAME=KBUILD_STR(vboxguest)" -c -o /tmp/vbox.0/.tmp_VBoxGuest.o /tmp/vbox.0/VBoxGuest.c
/bin/sh: gcc: command not found
make[2]: *** [/tmp/vbox.0/VBoxGuest-linux.o] Error 127
make[2]: *** Waiting for unfinished jobs....
/bin/sh: gcc: command not found
make[2]: *** [/tmp/vbox.0/VBoxGuest.o] Error 127
make[1]: *** [_module_/tmp/vbox.0] Error 2
make: *** [vboxguest] Error 2
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.

有什么帮助吗?

答案1

谢谢大家,我的问题通过运行解决 sudo yum update

sudo yum install -y gcc kernel-devel

答案2

除了在 manjaro 中安装主机模块,并将运行 vbox 的 manjaro 用户添加到组中之外,都解释了这里

看来需要在VM的CentOS中安装开发工具。根据你的截图 - 你还没有gcc安装。要做到这一点,请运行

sudo yum groupinstall 'Development Tools'

现在您应该能够在 CentOS 中编译来宾插件了。

相关内容