Utilizar algún tipo de software de virtualización de contenedores es una forma cómoda de instalar máquinas y de hacer pruebas en ellas, pero no todo lo que reluce es oro al utilizar estos sistemas nos bajamos imágenes preconfiguradas que pueden venir con los parámetros por defecto o no.
Por ejemplo LXD nos proporciona una imagen de Gentoo con ACCEPT_KEYWORDS=~amd64.
Gentoo necesita acceso a /dev/shm para realizar ciertas operaciones, si actualizamos Python veremos el siguiente error:
- configure has detected that the sem_open function is broken.
* Please ensure that /dev/shm is mounted as a tmpfs with mode 1777.
* ERROR: dev-lang/python-3.3.4-r1::gentoo failed (configure phase):
* Broken sem_open function (bug 496328)
*
* Call stack:
* ebuild.sh, line 124: Called src_configure
* environment, line 3542: Called die
* The specific snippet of code:
* die “Broken sem_open function (bug 496328)”;
Debemos darle acceso desde fuera:
Si el padre es una distribución que utiliza perfiles de AppArmmor también puede ser problemático, por ejemplo a la hora de montar Docker dentro de la Gentoo:
apparmor=“DENIED” operation=“mount” info=“failed type match” error=-13 name="/var/lib/lxd/kr0mtest/root/proc/" pid=3825 comm=“mount” fstype=“proc” srcname=“proc”
Configuramos el nesting desde el padre:
Y como ya he comentado debemos tener en cuenta que la imagen viene con las versiones inestables de todo el sistema.
ACCEPT_KEYWORDS=~amd64
NOTA: Espera lo mejor, prepárate para lo peor.
Un claro ejemplo de esto es mysql-8.0.20(21/05/2020), el script de postinstalación está roto, por lo tanto recordad que pasarse de “modernillo” se paga caro.
Quizás la mejor opción sea instalar una Gentoo estable en hardware real, un KVM o VirtualBox y luego transformarla a LXD tal como se indica aquí , de este modo podremos utilizar este CT como plantilla.