Ist es möglich, zwei verschiedene Glibc-Versionen auf derselben Maschine zu installieren und zu verwenden? Wo eine Version nur zum Ausführen von Legacy-Software verwendet wird, die auf alten glibc-Binärdateien basiert?
Ist es möglich, dies mit Hilfe des Paketmanagers zu tun (etwas wie „installiere dieses Paket und seine Abhängigkeiten nach /opt/old-glibc
), anstatt es düster zu verwalten
Akzeptierte Antwort:
Ja es ist möglich. Sie müssen mit den Ladepfaden der Bibliotheken sehr vorsichtig sein, und Sie müssen möglicherweise einige andere Bibliotheken neu kompilieren.
Als Weg der geringsten Reibung empfehle ich, eine ältere Version von Debian oder Ubuntu in einer Chroot zu installieren. Das heißt, erstellen Sie ein Verzeichnis, sagen Sie /old/etch
, und installieren Sie die ältere Distribution in dem dort verwurzelten Baum; Um dieses problematische Programm auszuführen, rufen Sie chroot
auf seine Sicht auf das Dateisystem auf /old/etch
zu beschränken .
Debian (oder Ubuntu) wird mit einem Paket geliefert, das bei der Installation eines anderen Systems in einer Chroot hilft:schroot (Nachfolger von dchroot). Verwenden Sie zunächst debootstrap, um die ältere Distribution zu installieren (installieren Sie nur das Basissystem und das, was Ihr Programm benötigt, keine Server). Richten Sie dann Schroot ein, um das Programm bequem auszuführen (mit /dev
, /proc
, /home
und andere „Satelliten“-Dateisysteme zugänglich).
Der Plan ist also:debootstrap, dann dchroot. In Wie führe ich 32-Bit-Programme auf einem 64-Bit-Debian/Ubuntu aus? gebe ich ein Tutorial über ein ähnliches Setup – unabhängig davon, ob Sie verschiedene Versionen der Distribution oder verschiedene Architekturen oder verschiedene Debian-ähnliche Distributionen ausführen, es ist nur eine Frage der Auswahl der geeigneten Paketquelle, der Rest ist gleich.