
¿Es posible tener una instalación básica de Ubuntu 14.04 (Trusty) y ejecutar en su interior versiones anteriores de Ubuntu en contenedores que originalmente venían con núcleos más antiguos?
Por ejemplo, para 12.04, asumiría que la respuesta es sí, ya que tiene linux-image
paquetes para versiones posteriores de Ubuntu, como linux-image-generic-lts-saucy
y linux-image-generic-lts-quantal
. Sin embargo, para 10.04 ese no es el caso, así que no estoy seguro. Pero, ¿hay documentación disponible que pueda utilizar para deducir qué se puede ejecutar?
La razón por la que pregunto es porque la interfaz del kernel se actualiza de vez en cuando. Sin embargo, a veces es beneficioso ejecutar versiones más nuevas de la distribución y al mismo tiempo mantener un entorno de compilación basado en un predecesor.
Respuesta1
Puede ejecutar programas Linux más antiguos en kernels más nuevos. Linux mantiene la compatibilidad con versiones anteriores (al menos para todas las interfaces documentadas), para beneficio de las personas que ejecutan binarios antiguos por una razón u otra (porque no quieren molestarse en volver a compilar, porque han perdido el código fuente, porque esto es software comercial del que no tienen la fuente, etc.).
Si desea tener un entorno de compilación con herramientas de desarrollo más antiguas, o incluso un entorno de prueba para cualquier cosa que no profundice en las interfaces del kernel, entonces no necesita ejecutar un kernel más antiguo, solo un entorno de usuario más antiguo. Para ello no necesitas nada complejo: unchrootservirá. Algo más avanzado como LXC, Docker,… puede ser útil si desea que la distribución más antigua (o más nueva, de hecho) tenga su propia configuración de red. Si no desea eso, puede usar lo que Debian usa precisamente para crear software en un entorno conocido (por ejemplo, crear software para Debian estable en una máquina con una instalación de prueba):schroot. Ver¿Cómo ejecuto programas de 32 bits en Debian/Ubuntu de 64 bits?para obtener una guía sobre cómo configurar una instalación alternativa de Debian o un derivado en un chroot.
Si desea ejecutar el kernel de la distribución anterior, necesitará una máquina virtual real para ello, como KVM o VirtualBox. La virtualización Linux-on-Linux con LXC o similar ejecuta el mismo kernel en todo momento.
Respuesta2
➜ codetv_static# docker run ubuntu:10.04 /bin/echo 'Howdy!' Unable to find image 'ubuntu:10.04' locally 10.04: Pulling from library/ubuntu a3ed95caeb02: Pull complete 86b54f4b6a4e: Pull complete Digest: sha256:f6695b2d24dd2e1da0a79fa72459e33505da79939c13ce50e90675c32988ab64 Status: Downloaded newer image for ubuntu:10.04 Howdy!