2015-01-31 9 views
10

Ich habe eine Glibc-Version 2.19 auf Ubuntu installiert. Ich möchte auch die Version 2.3.4 zusammen mit 2.19 auf meinem Rechner installieren.Wie installiert man mehrere Versionen von glibc?

Standardmäßig sollte das gesamte Programm 2.19 verwenden, aber nur ein bestimmtes Programm sollte 2.3.4 verwenden.

Die beiden Fragen sind:

  1. Wie soll ich die 2.3.4 an bestimmten Stelle installieren, /usr/glibc2.3.4 sagen?
  2. Wie soll ich ein bestimmtes Programm angeben, um die Version 2.3.4 zu verwenden?
+2

Besuchen Sie diese: http://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host, könnte Ihnen helfen –

+4

Wer als "allgemeine Computer-Hilfe" markiert, muss die neu lesen Richtlinien der Website zu dem Thema "Aus/An". Hier wird nach glibc gefragt - einer Programmierbibliothek, bei der die Frage direkt in ** on topic ** fällt. – Qix

+0

@GauravDave: Danke für den Zeiger. Ich habe den Beitrag gesehen, auf den du dich bezogen hast, bevor ich die Frage gepostet habe. Es geht darum, wie man eine Exe mit der Nicht-Standard-Version von glibc verbindet. Dies beantwortet zum Teil meine zweite Frage, aber nicht ganz, da ich 100 von Exes habe, die durch diese vielen Makefiles erstellt werden. Wie bei der Lösung im entsprechenden Post, muss ich diese vielen Makefiles modifizieren, um die Option --rpath und --dynamic-linker anzugeben. Ich würde gerne wissen, ob es eine bessere Lösung gibt. Auch die erste Frage wird nicht beantwortet, d. H. Wie eine andere Version der Glibc installiert wird, um mit der Standardversion zu koexistieren. – UnSat

Antwort

1

Wenn Sie nur die dynamischen Bibliotheken von der anderen Version von glibc Sie einfach LD_LIBRARY_PATH verwenden können. Wenn Sie jedoch die andere Version vollständig verwenden möchten, müssen Sie diese gegen die andere Version kompilieren, um die statischen Teile zu erhalten. Und vielleicht möchten Sie auch die andere Version von glibc kompilieren, damit alle fest codierten Pfade auf Ihr Installationsverzeichnis zum Laden von Datendateien und Plugins (für NSS und gconv) zeigen. Wenn Sie --prefix=/usr/glibc2.3.4 verwenden, wird auch der Soname des dynamischen Loaders auf /usr/glibc2.3.4/lib/ld-linux.so.2 (oder etwas Ähnliches, abhängig von Ihrer Architektur) gesetzt, das in jedem Programm, das damit verknüpft ist, fest codiert wird.

1
  1. die 2. Version innerhalb /opt extrahieren.
  2. Verwenden Sie LD_LIBRARY_PATH zuerst nach Bibliotheken innerhalb /opt suchen.