Estou tentando instalar o VirtualBox (o host, não o cliente) em uma instalação limpa do Alpine 3.8.0 Standard. Estou usando o VirtualBox-5.2.12-122591-Linux_amd64.run, baixado do link sob plataformas Linux > Todas as distribuições > 64 bits.
O instalador relatou vários erros, que até agora resolvi instalando os seguintes pacotes.
- coreutils (para obter o readlink com o sinalizador -e disponível)
- fazer
- gcc
- perl
- linux-headers (provavelmente não foi necessário)
- linux-vanilla-dev
O instalador também relatou:
/opt/VirtualBox/vboxdrv.sh line 501: can't create /etc/udev/rules.d/60-vboxdrv.rules: \
nonexistent directory.
Qual eu resolvi simplesmente executando:
mkdir -p /etc/udev/rules.d
Cada vez que o instalador falha, ele diz para executar o / sbin / vboxconfig para reiniciar o processo de instalação. Atualmente, quando faço isso, gera:
* service vboxdrv added to runlevel default
* service vboxballoonctrl-service added to runlevel default
* service vboxautostart-service added to runlevel default
* service vboxweb-service added to runlevel default
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: Look at /var/log/vbox-install.log to find out what went wrong.
There were problems setting up VirtualBox. To re-start the set-up process, run \
/sbin/vboxconfig as root.
/var/log/vbox-install.log contém:
make V=1 CONFIG_MODULE_SIG= -C /lib/modules/4.14.52-0-vanilla/build SUBDIRS=/tmp/vbox.0 \
SRCROOT=/tmp/vbox.0 -j1 modules
getconf: LFS_CFLAGS: unknown variable
getconf: LFS_LDFLAGS: unknown variable
getconf: LFS_LIBS: unknown variable
Makefile:948: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install \
libelf-dev, libelf-devel or elfutils-libelf-devel." Stop.
make: *** [/tmp/vbox.0/Makefile.include.footer:101: vboxdrv] Error 2
Eu não consigo resolver o problema mesmo instalando o libelf-dev. Por link , não há nenhum pacote libelf-devel ou elfutils-libelf-devel.
Separadamente, parece que não consigo ter o elfutils-dev e o libelf-dev instalados ao mesmo tempo. Se eu instalar uma e depois a outra, as saídas do apk:
ERROR: elfutils-dev-0.168-r1: trying to overwrite usr/lib/libelf.so owned by \
libelf-dev-0.8.13-r3.
ERROR: elfutils-dev-0.168-r1: trying to overwrite usr/lib/libelf.a owned by \
libelf-dev-0.8.13-r3.
ERROR: elfutils-dev-0.168-r1: trying to overwrite usr/include/libelf.h owned by \
libelf-dev-0.8.13-r3.
ERROR: elfutils-dev-0.168-r1: trying to overwrite usr/include/gelf.h owned by \
libelf-dev-0.8.13-r3.
ERROR: elfutils-dev-0.168-r1: trying to overwrite usr/include/nlist.h owned by \
libelf-dev-0.8.13-r3.
Isso é um problema porque o elfutils-dev é requerido pelo linux-vanilla-dev, que por sua vez parece ser requerido pelo / sbin / vboxconfig. Se eu rodar o / sbin / vboxconfig sem o linux-vanilla-dev instalado, ele mostrará:
...
vboxdrv.sh: Building VirtualBox kernel modules.
This system is currently not set up to build kernel modules.
Please install the Linux kernel "header" files matching the current kernel for adding new \
hardware support to the system.
Para tentar resolver isso, eu:
- Desinstalado linux-vanilla-dev.
- Instalado libelf-dev.
- Reinstalado linux-vanilla-dev.
linux-vanilla-dev e todas as suas dependências instaladas com sucesso, exceto para elfutils-dev, como esperado. Eu não estou ciente de quaisquer problemas causados por não ter o elfutils-dev instalado, e eu suponho que ter o libelf-dev instalado é mais importante, já que esse é o pacote referido na mensagem de erro em /var/log/vbox-install.log .
No entanto, quando eu executo / sbin / vboxconfig, o vboxdrv.sh ainda falha com "Não é possível gerar metadados ORC para CONFIG_UNWINDER_ORC = y, por favor, instale libelf-dev, libelf-devel ou elfutils-libelf-devel." Isto apesar de eu ter o libelf-dev instalado (ou assim eu acredito).
Em exibição:
apk info | grep 'libelf-dev'
Saídas:
libelf-dev
A execução do apk apk faz com que o apk tente reinstalar o elfutils-dev, que falha (por motivos descritos anteriormente), mas não apresenta outros problemas.
Eu baixei o VirtualBox-5.2.12-122591-Linux_amd64.run para uma caixa do Windows e o abri com o 7-Zip e extraii o postinst-common.sh (que eu acredito ser o mesmo arquivo que o / sbin / vboxconfig) e vboxdrv.sh. Eu não vejo uma maneira de anexá-los, mas posso acrescentar o conteúdo deles (cerca de 600 linhas no total) se alguém achar que seria útil.
Por favor, deixe-me saber se posso fornecer qualquer informação adicional. Eu ainda estou trabalhando nisso, então se eu aprender mais, eu adicionarei. Meus próximos passos atuais são:
- Investigue o vboxdrv.sh para ver se consigo encontrar o que ele faz para acionar esse erro.
- Tente usar o strace.
Obrigado!
Editar:
- postinst-common.sh aka / sbin / vboxconfig: link
- vboxdrv.sh: link