Ich habe kürzlich eine Software installiert, die meine Gruppe für ein Forschungsprojekt benötigt, das im kommenden September beginnt. Es stellt sich heraus, dass die Software bei Verwendung mit glibc 2.12.1 einen bekannten Absturzfehler aufweist. Mein Chef fragte, ob wir glibc auf dem Server aktualisieren können, auf dem es ausgeführt werden soll. Cue meine skeptische Stille ....
Irgendwann bekam ich es in mein Gehirn, dass das Spielen mit Glibc ungefähr so gut war wie das Spielen mit einem hungrigen Puma; Ich konnte jedoch die Quelle dieses Glaubens nicht bestimmen. Also, wenn ich so weitermache:
- Mache ich etwas offensichtlich Dummes (z. B. werde ich mein Problem nicht beheben, ich werde meinen Server blockieren oder ich werde eine Zombie-Apokalypse initiieren)?
- Was kann schon schief gehen?
- Was wird wahrscheinlich schief gehen?
- Wie vermeide ich die Antworten auf 2 und 3?
--prefix=$HOME
dann daraufLD_LIBRARY_PATH
und prüfen Sie, ob es funktioniert. Als Nicht-Root-Benutzer können Sie nicht das gesamte System vermasseln, egal wie schlimm Sie es vermasseln. Wenn das funktioniert, ändern Sie es in--prefix=/usr/local/bleeding-edge-glibc
und dokumentieren Sie esLD_LIBRARY_PATH=/usr/local/bleeding-edge-glibc/lib
als Voraussetzung für das Forschungsprojektglibc
Fehler Sie Angst haben und welche Art von Software Sie verwenden. Sie können Ihre Software patchen (vorausgesetzt, Sie haben den Quellcode) oder Ihr System anderweitig konfigurieren, um sie zu umgehen.Antworten:
Es ist oft möglich, eine frischere Bibliothek zu kompilieren und eine Software eine andere Bibliothek als alle anderen verwenden zu lassen.
Der größte Schmerzpunkt zwischen libc-Versionen ist der lokale Thread-Speicher IIRC. Wenn Sie diesen Meilenstein überschreiten, sind alle Wetten ungültig.
Trotzdem würde ich Ihnen dringend empfehlen, die Distribution einfach auf etwas Modernes zu aktualisieren. Wenn Sie stückweise Upgrades durchführen, kann dies zu Schmerzen führen, bei denen Sie monatelang Ihren Schwanz verfolgen.
quelle
In der Kompatibilitätstabelle finden Sie Informationen zu binärkompatiblen Versionen.
Normalerweise ist es kein Problem, glibc auf eine neuere Version zu aktualisieren, aber Sie sollten es mit denselben Konfigurationsflags erstellen, die in Ihrer Distribution verwendet werden (siehe Spezifikationsdatei im entsprechenden SRPM-Paket).
quelle