Installation einer bestimmten glibc-Version unter debian / apt

4350
Matthias Gerstner

Ein Benutzer meiner Software verwendet Debian Wheezy. Die Software hat einen Core-Dump erstellt, den ich analysieren möchte. Damit dies funktioniert, benötige ich jedoch die korrekten Versionen der Low-Level-Systembibliotheken, insbesondere der glibc.

Also habe ich die Debian-Version installiert, die der Benutzerversion am nächsten liegt: Debian Wheezy 7.4. Jetzt habe ich:

libc6:amd64 2.13-38+deb7u1 amd64 Embedded GNU C Library: Shared libraries

apt-get bietet mir ein Update auf die Version an 2.13-38+deb7u6. Ich benötige 2.13-38+deb7u4jedoch eine Version (aus der der Core-Dump generiert wurde).

Wie soll diese libc-Version installiert werden?

0

2 Antworten auf die Frage

0
wurtel

Ich würde es nicht installieren, aber entpacke es in ein Arbeitsverzeichnis und verweise es über LD_LIBRARY_PATH. Ein Downgrade Ihres libc6-Pakets kann ziemlich problematisch sein.

Ihr Kunde sollte Ihnen die libc6-Version liefern können. Es kann jedoch ratsam sein, das libc6-dbgPaket zu verwenden, das Debugsymbole enthält. Leider ist die 7u4Version älter und nicht mehr verfügbar.

Als letzter Ausweg wäre das natürlich möglich. Es erfordert jedoch eine Interaktion des Benutzers. Meine Benutzer sind nicht unbedingt dazu bereit oder bereit, Debug-Symbole zu installieren. Wenn sie angewiesen werden, mir ihre Bibliotheken zu senden, wird der Debugging-Prozess erheblich erschwert. Vielleicht können sie nicht einmal die korrekten Debug-Symbole installieren, ohne libc selbst zu aktualisieren. Dadurch gehen die korrekten Bibliotheken wieder verloren ... Matthias Gerstner vor 9 Jahren 0
Ich meinte nicht, dass die Benutzer die Debug-Versionen installieren müssten. Wenn Sie dieselbe Version von libc6 wie Ihr Benutzer haben können, * mit * Debugging-Symbolen, dann sollte dies funktionieren, da sie in derselben Bibliothek vorhanden sind wird vor und das andere nach dem Herausziehen der Symbole verpackt. wurtel vor 9 Jahren 0
Okay, aber wo würde ich genau diese libc-Binärdatei mit Debug-Symbolen bekommen, wenn nicht irgendwo von Debian. Bisher fand ich nicht viel Paketarchiv oder ähnliches. Matthias Gerstner vor 9 Jahren 0
Wie gesagt, es ist eine ältere Version, und nicht jede Version, die jemals existiert, bleibt erhalten. Der `u`-Teil zeigt an, dass es sich um ein Punkt-Update handelt. Leider aktualisieren Sie und Ihr Kunde nicht regelmäßig genug :-) wurtel vor 9 Jahren 0
Damit komme ich wieder an den Anfang der Frage. Denn wenn ich keine passende binäre Version von libc bekomme, kann ich den Core-Dump nicht zuverlässig analysieren. Leider kann ich die Update-Richtlinien meiner Clients oder die verwendeten Linux-Distributionen nicht beeinflussen. Es stellt sich heraus, dass Debian nicht die beste Wahl ist, wenn ich meine Kerndumps analysieren möchte. Matthias Gerstner vor 9 Jahren 0
Ich brauche im Allgemeinen keine passende Version der gemeinsam genutzten Bibliothek, um `gdb` auszuführen, es sei denn, ich vermute, dass das Problem in einer der gemeinsam genutzten Bibliothek liegt. Andererseits geben meine Programme keinen Kernspeicher ab, wenn sie für die Veröffentlichung geeignet sind :-P wurtel vor 9 Jahren 0
0
Matthias Gerstner

Es stellte sich heraus, dass ich mit apt-get einfach nicht vertraut war. Ich konnte die erforderliche glibc-Version mit dem folgenden Befehl installieren:

apt-get install libc-bin=2.13-38+deb7u4 libc6=2.13-38+deb7u4

Ich habe es sogar heruntergestuft und alles funktioniert in Ordnung. Die Core-Dump-Analyse funktioniert jetzt.