在没有 GUI 或 Guest Additions 的情况下构建 VirtualBox
Building VirtualBox without GUI or Guest Additions
我正在尝试在 Ubuntu Server LTS 18.04 64 位上构建 VirtualBox 5.2.18。我想在没有任何 GUI 组件和 Guest Additions 的情况下构建它,因为我想避免安装任何不必要的依赖项。我在配置时使用了以下选项:
./configure --build-headless --disable-qt --disable-alsa --disable-pulse --disable-opengl --disable-sdl-ttf --disable-libvpx --disable-docs
虽然有一个选项可以只构建 Guest Additions (--only-additions),但似乎没有 configure
可以跳过构建 Guest Additions 的选项。有没有办法跳过构建 Guest Additions,或者忽略与构建 Guest Additions 相关的任何构建时错误?
我在 https://forums.virtualbox.org/viewtopic.php?t=33090&start=0 中找到了解决方案,其中包含更多有用的详细信息。通过将以下行添加到开发树根目录中的 LocalConfig.kmk
,可以在没有 GUI 或 Guest Additions 的情况下构建 VirtualBox:
VBOX_WITHOUT_ADDITIONS = 1
VBOX_WITH_HEADLESS = 1
VBOX_WITH_VRDP=
VBOX_WITH_VRDP_VIDEO_CHANNEL=
VBOX_WITH_VRDP_AUTHMOD=
VBOX_WITH_VRDP_RDESKTOP=
VBOX_WITH_VBOXFB=
VBOX_WITH_KCHMVIEWER=
VBOX_WITH_TESTSUITE=
VBOX_WITH_TESTCASES=
VBOX_WITH_SHARED_FOLDERS=
VBOX_WITH_SHARED_CLIPBOARD=
VBOX_WITH_VNC =
VBOX_X11_SEAMLESS_GUEST=
然后可以通过在根文件夹中执行以下命令来构建 VirtualBox:
./configure --build-headless --disable-qt --disable-alsa --disable-pulse --disable-opengl --disable-sdl-ttf --disable-libvpx --disable-docs
source env.sh
kmk
尚不清楚哪些选项对于跳过来宾添加的构建是必需的(在 LocalConfig.kmk
或传递给 ./configure
的选项中)。
执行kmk packing
时,可能会出现以下错误信息:
kmk: *** No rule to make target `.../out/linux.amd64/release/bin/additions/VBoxGuestAdditions.iso',
needed by `.../out/linux.amd64/release/obj/Installer/linux/archive/additions/VBoxGuestAdditions.iso'.
Stop.
可以通过在 kmk packing
之前执行 touch
命令来避免此错误(此修复是从 https://forums.virtualbox.org/viewtopic.php?f=10&t=41598&p=187420&hilit=VBoxGuestAdditions#p187420 获得的):
kmk
mkdir -p out/linux.amd64/release/bin/additions/
touch out/linux.amd64/release/bin/additions/VBoxGuestAdditions.iso
kmk packing
在 touch
之前添加了 mkdir
命令,因为如果目录 out/linux.amd64/release/bin/additions/
不存在,touch
可能会失败。
安装VirtualBox-*.run
时可能会出现一些错误,但应该完全成功。但是,如果您尝试执行 VBoxManage
,您可能会收到以下错误:
Could not find VirtualBox installation. Please reinstall.
这很可能是因为在安装文件夹(通常是/opt/VirtualBox
)中找不到可执行文件VirtualBox
。文件 VirtualBox
是未构建的 GUI 组件。我们可以通过在安装文件夹中编辑 VBox.sh
并更改行
来绕过错误
elif test -f "${MY_DIR}/VirtualBox" && test -x "${MY_DIR}/VirtualBox"; then
到
elif test -f "${MY_DIR}/VBoxHeadless" && test -x "${MY_DIR}/VBoxHeadless"; then
VirtualBox 现在应该 运行 没有任何问题。
我正在尝试在 Ubuntu Server LTS 18.04 64 位上构建 VirtualBox 5.2.18。我想在没有任何 GUI 组件和 Guest Additions 的情况下构建它,因为我想避免安装任何不必要的依赖项。我在配置时使用了以下选项:
./configure --build-headless --disable-qt --disable-alsa --disable-pulse --disable-opengl --disable-sdl-ttf --disable-libvpx --disable-docs
虽然有一个选项可以只构建 Guest Additions (--only-additions),但似乎没有 configure
可以跳过构建 Guest Additions 的选项。有没有办法跳过构建 Guest Additions,或者忽略与构建 Guest Additions 相关的任何构建时错误?
我在 https://forums.virtualbox.org/viewtopic.php?t=33090&start=0 中找到了解决方案,其中包含更多有用的详细信息。通过将以下行添加到开发树根目录中的 LocalConfig.kmk
,可以在没有 GUI 或 Guest Additions 的情况下构建 VirtualBox:
VBOX_WITHOUT_ADDITIONS = 1
VBOX_WITH_HEADLESS = 1
VBOX_WITH_VRDP=
VBOX_WITH_VRDP_VIDEO_CHANNEL=
VBOX_WITH_VRDP_AUTHMOD=
VBOX_WITH_VRDP_RDESKTOP=
VBOX_WITH_VBOXFB=
VBOX_WITH_KCHMVIEWER=
VBOX_WITH_TESTSUITE=
VBOX_WITH_TESTCASES=
VBOX_WITH_SHARED_FOLDERS=
VBOX_WITH_SHARED_CLIPBOARD=
VBOX_WITH_VNC =
VBOX_X11_SEAMLESS_GUEST=
然后可以通过在根文件夹中执行以下命令来构建 VirtualBox:
./configure --build-headless --disable-qt --disable-alsa --disable-pulse --disable-opengl --disable-sdl-ttf --disable-libvpx --disable-docs
source env.sh
kmk
尚不清楚哪些选项对于跳过来宾添加的构建是必需的(在 LocalConfig.kmk
或传递给 ./configure
的选项中)。
执行kmk packing
时,可能会出现以下错误信息:
kmk: *** No rule to make target `.../out/linux.amd64/release/bin/additions/VBoxGuestAdditions.iso',
needed by `.../out/linux.amd64/release/obj/Installer/linux/archive/additions/VBoxGuestAdditions.iso'.
Stop.
可以通过在 kmk packing
之前执行 touch
命令来避免此错误(此修复是从 https://forums.virtualbox.org/viewtopic.php?f=10&t=41598&p=187420&hilit=VBoxGuestAdditions#p187420 获得的):
kmk
mkdir -p out/linux.amd64/release/bin/additions/
touch out/linux.amd64/release/bin/additions/VBoxGuestAdditions.iso
kmk packing
在 touch
之前添加了 mkdir
命令,因为如果目录 out/linux.amd64/release/bin/additions/
不存在,touch
可能会失败。
安装VirtualBox-*.run
时可能会出现一些错误,但应该完全成功。但是,如果您尝试执行 VBoxManage
,您可能会收到以下错误:
Could not find VirtualBox installation. Please reinstall.
这很可能是因为在安装文件夹(通常是/opt/VirtualBox
)中找不到可执行文件VirtualBox
。文件 VirtualBox
是未构建的 GUI 组件。我们可以通过在安装文件夹中编辑 VBox.sh
并更改行
elif test -f "${MY_DIR}/VirtualBox" && test -x "${MY_DIR}/VirtualBox"; then
到
elif test -f "${MY_DIR}/VBoxHeadless" && test -x "${MY_DIR}/VBoxHeadless"; then
VirtualBox 现在应该 运行 没有任何问题。