Ist es möglich, eine Vanilla-Installation von Ubuntu 14.04 (Trusty) zu haben und darin containerisierte ältere Ubuntu-Versionen auszuführen, die ursprünglich mit älteren Kerneln geliefert wurden?
Zum Beispiel für 12.04 würde ich annehmen, dass die Antwort ja ist, da es linux-image
Pakete für nachfolgende Ubuntu-Versionen wie linux-image-generic-lts-saucy
und enthält linux-image-generic-lts-quantal
. Für 10.04 ist dies jedoch nicht der Fall, daher bin ich mir nicht sicher. Aber gibt es eine Dokumentation, anhand derer ich ableiten kann, was in Ordnung ist?
Der Grund, den ich frage, ist, dass die Kernel-Oberfläche von Zeit zu Zeit aktualisiert wird. Manchmal ist es jedoch vorteilhaft, neuere Versionen der Distribution auszuführen und gleichzeitig eine Build-Umgebung beizubehalten, die auf einem Vorgänger basiert.
Antworten:
Sie können ältere Linux-Programme auf neueren Kerneln ausführen. Linux behält die Abwärtskompatibilität bei (zumindest für alle dokumentierten Schnittstellen), zum Nutzen von Personen, die aus dem einen oder anderen Grund alte Binärdateien ausführen (weil sie sich nicht um das Neukompilieren kümmern möchten, weil sie die Quelle verloren haben, weil dies der Fall ist kommerzielle Software, für die sie keine Quelle haben usw.).
Wenn Sie eine Build-Umgebung mit älteren Entwicklungstools oder sogar eine Testumgebung für alles haben möchten, was nicht tief in die Kernel-Schnittstellen eintaucht, müssen Sie keinen älteren Kernel ausführen, sondern nur eine ältere Userland-Umgebung. Dafür brauchen Sie nichts Komplexes: Eine Chroot reicht aus . Etwas Fortgeschritteneres wie LXC, Docker usw. kann nützlich sein, wenn die ältere (oder neuere) Distribution eine eigene Netzwerkkonfiguration haben soll. Wenn Sie das nicht möchten, können Sie das verwenden, was Debian genau verwendet, um Software in einer bekannten Umgebung zu erstellen (z. B. Software für Debian Stable auf einem Computer mit einer Testinstallation erstellen ): schroot . Siehe Wie führe ich 32-Bit-Programme auf einem 64-Bit-Debian / Ubuntu aus? Hier finden Sie eine Anleitung zum Einrichten einer alternativen Installation von Debian oder eines Derivats in einer Chroot.
Wenn Sie den Kernel der älteren Distribution ausführen möchten, benötigen Sie dafür eine tatsächliche virtuelle Maschine, z. B. KVM oder VirtualBox. Bei der Linux-on-Linux-Virtualisierung mit LXC oder ähnlichem wird durchgehend derselbe Kernel ausgeführt.
quelle
time_t
Bit auf 64-Bit,time_t
die eine inkompatible Änderung darstellt. Was ist der Grenzwert?➜ 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!
quelle