Ist es möglich, zwei verschiedene glibc-Versionen auf demselben Computer zu installieren und zu verwenden? Wobei 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" /opt/old-glibc
), anstatt es direkt zu verwalten?
ubuntu
debian
dynamic-linking
glibc
Elazar Leibovich
quelle
quelle
ldd
würde dir etwas sagen. Nach Möglichkeit müssen Sie möglicherweise die alte libc-Bibliothek neu kompilieren und / oder Unterstützungspakete installieren / neu kompilieren. Je nachdem, wie alt Ihre App ist, kann dies schwierig werden. Ich sehe, dass aktuelles Debianlibc6
vonlibc-bin (= 2.13-0exp5)
und abhängtlibgcc1
, alsolibc6
nicht viele Abhängigkeiten hat, aber Sie könnten trotzdem auf Probleme stoßen.Antworten:
Ja es ist möglich. Sie müssen beim Laden der Bibliotheken sehr vorsichtig sein und 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
/old/etch
und installieren Sie die ältere Distribution in dem Baum, der dort verwurzelt ist. Um dieses problematische Programm auszuführen, rufen Siechroot
auf, um die Ansicht des Dateisystems auf zu beschränken/old/etch
.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 zuerst debootstrap , um die ältere Distribution zu installieren (installieren Sie nur das Basissystem und das, was Ihr Programm benötigt, keine Server). Dann schroot richten Sie das Programm bequem laufen (mit
/dev
,/proc
,/home
und andere „Satelliten“ Dateisysteme zugänglich).Der Plan lautet also: Debootstrap, dann Dchroot. In Wie führe ich 32-Bit-Programme auf einem 64-Bit-Debian / Ubuntu aus? Ich gebe ein Tutorial über ein ähnliches Setup - 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 der gleiche.
quelle
/old/etch
?