在不添加GUI或来宾的情况下构建VirtualBox
我正试图在Ubuntu服务器LTS 18.04 64位上构建VirtualBox 5.2.18。我希望构建它时不使用任何GUI组件,也不添加来宾,因为我希望避免安装任何不必要的依赖项。配置时,我使用以下选项:在不添加GUI或来宾的情况下构建VirtualBox,virtualbox,headless,ubuntu-18.04,Virtualbox,Headless,Ubuntu 18.04,我正试图在Ubuntu服务器LTS 18.04 64位上构建VirtualBox 5.2.18。我希望构建它时不使用任何GUI组件,也不添加来宾,因为我希望避免安装任何不必要的依赖项。配置时,我使用以下选项: ./configure --build-headless --disable-qt --disable-alsa --disable-pulse --disable-opengl --disable-sdl-ttf --disable-libvpx --disable-docs 尽管有一
./configure --build-headless --disable-qt --disable-alsa --disable-pulse --disable-opengl --disable-sdl-ttf --disable-libvpx --disable-docs
尽管有一个选项可以只构建来宾添加(--only Additions),但似乎没有一个选项可以通过configure
跳过构建来宾添加。有没有办法跳过构建来宾添加,或者忽略与构建来宾添加相关的任何构建时错误?我在中找到了一个解决方案,其中包含了更多有用的详细信息。通过将以下行添加到开发树根目录中的LocalConfig.kmk
,可以在不添加GUI或来宾的情况下构建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打包之前执行touch
命令,可以避免此错误(此修复程序来自):
在touch
之前添加了mkdir
命令,因为如果目录out/linux.amd64/release/bin/additions/
不存在,touch
可能会失败
安装VirtualBox-*。运行,可能会出现一些错误,但应该会完全成功。但是,如果尝试执行VBoxManage
,可能会出现以下错误:
Could not find VirtualBox installation. Please reinstall.
这很可能是因为在安装文件夹中找不到可执行文件VirtualBox
(通常是/opt/VirtualBox
)。文件VirtualBox
是未构建的GUI组件。我们可以通过编辑安装文件夹中的VBox.sh
并更改行来绕过此错误
elif test -f "${MY_DIR}/VirtualBox" && test -x "${MY_DIR}/VirtualBox"; then
到
VirtualBox现在应该可以正常运行了
elif test -f "${MY_DIR}/VirtualBox" && test -x "${MY_DIR}/VirtualBox"; then
elif test -f "${MY_DIR}/VBoxHeadless" && test -x "${MY_DIR}/VBoxHeadless"; then