Was kann bei einem GLIBC-Upgrade schief gehen?

9

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:

  1. 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)?
  2. Was kann schon schief gehen?
  3. Was wird wahrscheinlich schief gehen?
  4. Wie vermeide ich die Antworten auf 2 und 3?
Siebenlos
quelle
3
Überprüfen Sie zunächst, ob Ihre Distribution über Glibc-Upgrades verfügt, mit denen der Fehler behoben wird. Ein bestimmtes Glibc einer Distribution kann im Vergleich zum offiziellen Glibc viele Backports / Bugfixes zu seinem Glibc enthalten, aber die Distribution-Version ist immer noch dieselbe.
Nr.
1
Solange Sie ein bootfähiges Wechselmedium (USB-Stick, CD, DVD) haben, ist das Gerät nicht wirklich gemauert. Rettung ist möglich, indem glibc von dort aus neu installiert wird. Um jede Gefahr zu vermeiden, können Sie versuchen, ein neues glibc als Nicht-Root-Benutzer zu kompilieren. Zeigen Sie --prefix=$HOMEdann darauf LD_LIBRARY_PATHund 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-glibcund dokumentieren Sie es LD_LIBRARY_PATH=/usr/local/bleeding-edge-glibc/libals Voraussetzung für das Forschungsprojekt
Alan Curry
1
Können Sie die Distribution nicht aktualisieren? Und Sie sollten angeben, vor welchem glibcFehler 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.
Vermeiden Sie nach Möglichkeit die Verwendung alter Serversoftware für neue Projekte.
Michael Hampton

Antworten:

5

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.

Tom Newton
quelle
2

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).

Geben Sie hier die Bildbeschreibung ein

Linuxbuild
quelle