Linux + Dialogdienstprogramm kann nicht ausgeführt werden + habe Fehler

Linux + Dialogdienstprogramm kann nicht ausgeführt werden + habe Fehler

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 dialogvon 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/binohne 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, dialoges von Ihrem Paketmanager aus zu installieren, anstatt es einfach /usr/bindirekt 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/dialogund /usr/lib/libncursesw.so.5), und führen Sie dann aus yum install dialog. Dies sollte alle Ihre Probleme beheben.

verwandte Informationen