Linux-Kernel: 3.0.13-0.27-default #1 SMP
Ich habe das Dienstprogramm „Dialog“ ( /usr/bin/dialog ) installiert und gerade die Bin-Datei nach /usr/bin kopiert
Als ich versucht habe, es auszuführen, erschien eine Fehlermeldung bezüglich der fehlenden Bibliothek libncursesw.so.5.
Um das Problem zu lösen, versuche ich, die Datei libncursesw.so.5 nach /usr/lib/ zu kopieren, aber das hilft nicht
• Jetzt habe ich einen weiteren Fehler erhalten:
“error while loading shared libraries: /usr/lib/libncursesw.so.5: file too short”…
Antwort1
Die dialog
von Ihnen kopierte Binärdatei ist eine dynamische ausführbare Datei, was bedeutet, dass sie bei ihrer Ausführung auf gemeinsam genutzte Bibliotheken angewiesen ist. Sie können dies mit folgendem Befehl sehen ldd
:
$ ldd "$(type -p dialog)"
linux-vdso.so.1 (0x00007fff54fb1000)
libncursesw.so.5 => /usr/lib/libncursesw.so.5 (0x00007fbc0ecee000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fbc0e9eb000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fbc0e640000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbc0ef4d000)
In meinem Fall sind dies die Bibliotheken, auf die es angewiesen ist. Abhängig von Ihrer Version, den Kompilierungsoptionen und anderen Faktoren kann Ihre Binärdatei andere Anforderungen haben.
Da Sie die Binärdatei manuell kopiert haben, /usr/bin
ohne eine Abhängigkeitsauflösung durchzuführen, ist es durchaus möglich, dass diese gemeinsam genutzten Bibliotheken auf Ihrem System nicht vorhanden sind. Die zweite Fehlermeldung, die Sie erhalten haben, „Datei zu kurz“, weist darauf hin, dass mit dieser Bibliothek etwas nicht stimmt (wahrscheinlich ist sie tatsächlich zu kurz, es sollte ein symbolischer Link statt einer Datei sein. Aus Ihrer Frage allein lässt sich nicht ableiten, was Sie dort eingegeben haben).
Anstatt diesen Weg zu gehen, sollten Sie zunächst versuchen, dialog
es von Ihrem Paketmanager aus zu installieren, anstatt es einfach /usr/bin
direkt nach zu kopieren. Auf diese Weise behalten Sie die Installation des Pakets im Auge, erhalten Updates ohne großen Aufwand und lassen die Abhängigkeiten dafür automatisch von Ihrem Paketmanager installieren. Da Sie OpenSUSE verwenden, versuchen Sie, die Dateien zu entfernen, die Sie manuell kopiert haben ( /usr/bin/dialog
und /usr/lib/libncursesw.so.5
), und führen Sie dann aus yum install dialog
. Dies sollte alle Ihre Probleme beheben.