
Ist es möglich, eine Vanilla-Installation von Ubuntu 14.04 (Trusty) zu haben und darin ältere Ubuntu-Versionen in Containern auszuführen, die ursprünglich mit älteren Kerneln ausgeliefert wurden?
Für 12.04 würde ich beispielsweise davon ausgehen, dass die Antwort „Ja“ lautet, da es linux-image
Pakete für nachfolgende Ubuntu-Versionen wie linux-image-generic-lts-saucy
und gibt linux-image-generic-lts-quantal
. Für 10.04 ist das jedoch nicht der Fall, daher bin ich mir nicht sicher. Gibt es aber Dokumentation, anhand derer ich ableiten kann, was ich ausführen darf?
Der Grund für meine Frage ist, dass die Kernelschnittstelle hin und wieder aktualisiert wird. Manchmal ist es jedoch von Vorteil, neuere Versionen der Distribution auszuführen und gleichzeitig eine Build-Umgebung basierend auf einem Vorgänger beizubehalten.
Antwort1
Sie können ältere Linux-Programme auf neueren Kerneln ausführen. Linux ist abwärtskompatibel (zumindest für alle dokumentierten Schnittstellen), was denjenigen zugutekommt, die aus dem einen oder anderen Grund alte Binärdateien verwenden (weil sie sich nicht mit dem Neukompilieren herumschlagen wollen, weil sie den Quellcode verloren haben, weil es sich um kommerzielle Software handelt, für die sie den Quellcode nicht haben usw.).
Wenn Sie eine Build-Umgebung mit älteren Entwicklungstools oder sogar eine Testumgebung für etwas haben möchten, das nicht tief in Kernel-Schnittstellen eintaucht, müssen Sie keinen älteren Kernel ausführen, sondern nur eine ältere Userland-Umgebung. Dafür benötigen Sie nichts Komplexes: einechrootreicht aus. Etwas Fortgeschritteneres wie LXC, Docker usw. kann nützlich sein, wenn Sie möchten, dass die ältere (oder neuere) Distribution ihre eigene Netzwerkkonfiguration hat. Wenn Sie das nicht möchten, können Sie genau das verwenden, was Debian verwendet, um Software in einer bekannten Umgebung zu erstellen (z. B. Software für Debian Stable auf einem Computer mit einer Testinstallation erstellen):schroot. SehenWie führe ich 32-Bit-Programme auf einem 64-Bit-Debian/Ubuntu aus?für eine Anleitung zum Einrichten einer alternativen Installation von Debian oder einem Derivat in einem Chroot.
Wenn Sie den Kernel der älteren Distribution ausführen möchten, benötigen Sie dafür eine echte virtuelle Maschine wie KVM oder VirtualBox. Bei der Linux-on-Linux-Virtualisierung mit LXC oder ähnlichem wird durchgehend derselbe Kernel ausgeführt.
Antwort2
➜ 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!