Redhat Linux /lib/libc.so.6: Version `GLIBC_2.16 'nicht gefunden (erforderlich für /lib/libncurses.so.5)

9337
Junaid388

Ich verwende einen Server RHEL 6.4, auf dem derzeit GLIBC 2.12 installiert ist. Wir versuchen, ein Programm auszuführen, das diesen Fehler ausgibt

/lib/libc.so.6: Version `GLIBC_2.16 'nicht gefunden (erforderlich für /lib/libncurses.so.5)

Ich kann keine Aktualisierung über ein Repo durchführen, da der Server nicht mit dem Internet verbunden ist.

Die letzte Person hat eine Arbeit gemacht, in der er die libc.so.6-Datei von einem GLIBC_2.16 genommen und den Link in der / lib-Datei geändert hat. Es schien richtig zu funktionieren.

Ich kann die libc.so.6-Datei für GLIBC_2.16 jedoch nicht finden

Irgendwelche Ideen, wo ich die Datei finden kann, ohne den systemweiten GLIBC umfassend zu aktualisieren.

Wenn dies nicht möglich ist, verwenden Sie den neuen GLIBC.

1

1 Antwort auf die Frage

0
The19thFighter

EDIT: Ich gehe davon aus, dass Sie einen normalen i386-kompatiblen Prozessor verwenden.
Wie sind Sie schließlich dazu gekommen, aus einem neuen System heraus zu kommen?
Wie auch immer, hier haben Sie das, wonach Sie gefragt haben. Sie können es von http://launchpadlibrarian.net/123667354/libc6_2.16-0ubuntu6_i386.deb (Launchpad) herunterladen. Extrahieren Sie das Paket (z. B. unter Windows mit 7zip) und nehmen Sie libc .so.6 davon. (in lib / i386-linux-gnu /) Für amd64 müssen Sie es nur anpassen. Installieren Sie dieses Paket jedoch NICHT durch Überschreiben! Verwenden Sie einfach libc.so.6, wenn dies die Problemumgehung war. Andernfalls ist Ihr Server wahrscheinlich fehlerhaft. Obwohl es von einer anderen Distribution stammt, funktioniert das normalerweise.

Falls Sie Linux verwenden und keinen Neustart durchführen möchten, können Sie ihn unter Linux auspacken.

# mkdir libc # cd libc # ar x ../libc6_2.16-0ubuntu6_i386.deb  # tar xzf data.tar.gz 

Jetzt sollten Sie ein Verzeichnis mit allen .so-Dateien im Paket libc6 haben.

Ach, und sei vorsichtig, libc.so.6 ist eigentlich ein Link zu libc-2.16.so, also willst du libc-2.16.so und nicht libc.so.6 kopieren

Der Server ist ein RHEL 6.4, auf dem x86_64 ausgeführt wird. Und die ncurses sind für eine netezza CLI Cleint. Wäre es besser, wenn wir die glibc auf 2.16 oder die aktuellste Version aktualisieren? Wenn ja, wie können wir es ohne Internetverbindung tun, um auf Redhat Repos zugreifen zu können. Und ist es abwärtskompatibel und verursacht bei bestehenden Installationen kein Problem. Junaid388 vor 9 Jahren 0
Dann sollten Sie mit diesem Paket zufrieden sein: http://launchpadlibrarian.net/121445924/libc6_2.16-0ubuntu3_amd64.deb The19thFighter vor 9 Jahren 0
Die Aktualisierung von glibc sollte kein Problem sein. The19thFighter vor 9 Jahren 0
Da ich kein yum habe, wie kann ich glibc aktualisieren, ohne Abhängigkeiten aufzulösen? Neu bei der Linux-Administration: / Junaid388 vor 9 Jahren 0
http://www.rpm.org/max-rpm/s1-rpm-install-performing-install.html Sie können rpm -i package.rpm verwenden, um ein Paket zu installieren. Ich habe jedoch nie eine auf RPM basierende Distribution verwendet, daher kann ich nicht garantieren, dass sie perfekt ist. https://access.redhat.com/downloads auf der rechten Seite sollten Sie nach Paketen suchen können, wenn Sie ein RedHat-Konto besitzen. Ich denke, du könntest die neueste Glibc dort herunterladen. Wenn dies nicht funktioniert https://access.redhat.com/solutions/10154 Sie können das heruntergeladene RPM dann installieren, indem Sie es auf den Server übertragen. rpm sollte Abhängigkeiten prüfen. The19thFighter vor 9 Jahren 0
Ich habe mich nur umgesehen, scheint 2.12 der eigentliche Stable für 6.4 zu sein. Sie könnten noch ein Upgrade durchführen (indem Sie beispielsweise 2.17 von el7 herunterladen), aber ich würde nicht vorschlagen, dies zu tun, da dies negative Auswirkungen auf die Stabilität haben könnte. Ändern Sie niemals ein laufendes System, es sei denn, es wird wirklich benötigt. The19thFighter vor 9 Jahren 0
Das Problem ist, dass der Client, den wir benötigen, eine 2.16 erfordert. Ich denke, was passiert ist, indem der vor mir installierte Sysadmin ncurses mit glibc 2.16 übereinstimmt und wir jetzt dazu gezwungen werden, entweder entweder alle Abhängigkeiten herunterzurüsten oder den aktuellen zu aktualisieren ein. Junaid388 vor 9 Jahren 0
Ich würde vorschlagen, die aktuellen ncurses auf eine Version herunterzurüsten, die eine ältere Version von glibc verwendet, aber seien Sie vorsichtig, es könnte sein, dass genau diese Version von Ihrem Programm benötigt wird. Dies könnte der Grund sein, warum sys-admin es installiert hat alles. In diesem Fall müssen Sie die aktuelle Version von ncurses neu kompilieren, um mit glibc 2.12 arbeiten zu können. Prüfen Sie einfach, ob die alten Ncurses mit Ihrem Programm funktionieren. Wenn nicht, können Sie es trotzdem wiederherstellen (wenn Sie das Paket haben). Ein Upgrade von glibc ist wahrscheinlich die gefährlichste Sache, die Sie tun können, und wenn etwas schief gehen sollte, wird es schwierig sein, das zu beheben. The19thFighter vor 9 Jahren 0
Wie kann ich die aktuelle Version von ncurses wiederfinden? Ich habe das ISO für REDhat geprüft und es wurde die folgende Version von Redhat Media installiert. Glibc.x86_64 - 2.12-1.107.el6 ncurses.x86_64 - 5.7-3.20090208.el6 Wenn beide vom selben Medium installiert werden, sind sie nicht kompatibel mit der Version von glibc Junaid388 vor 9 Jahren 0
Sind Sie sicher, dass niemand Ncurses überschrieben hat? Es kann auch sein, dass keine native Version von ncurses verwendet wird und stattdessen eine mit Ihrer Software gebündelt wird. Wenn Sie ldd mit dem Pfad zum Exe (Ihrer Software) verwenden, sollten Sie die Dinge in Ordnung bringen. Wenn dies nicht funktioniert, verwenden Sie LD_DEBUG = libs als Umgebungsvariable, dann >> die Ausgabe in eine Datei und prüfen Sie, woher ncurses geladen wurde. The19thFighter vor 9 Jahren 0
Ich habe geprüft und die ncurses werden aus dem richtigen Pfad der lib geladen. Ich habe sogar versucht, glibc und ncurses zuerst neu zu installieren, aber immer noch die gleiche Fehlermeldung zu erhalten: / Jedenfalls kann ich überprüfen, ob es eine Bibliothek gibt, die auf ncurses angewiesen ist, wie ncurses erfordert Glibc zu laufen. Junaid388 vor 9 Jahren 0
My Bad, jemand hatte die so-Datei manuell im lib-Ordner abgelegt und den Softlink manuell erstellt, den Softlink gelöscht, so die Datei gelöscht, ncurses neu installiert, wie ein Zauber ausgeführt Junaid388 vor 9 Jahren 0