PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Allgemein Libraries... (error while loading shared libraries)



GreenShadow
30.11.04, 12:45
Ich hätte mal ne allgemeine Frage.

Wenn ich z.B. Eterm auf meiner Slackware Box ausführen möchte, kommt


root@nebuchadnezzar:~# Eterm
Eterm: error while loading shared libraries: libast.so.1: cannot open shared object file: No such file or directory
root@nebuchadnezzar:~#


Die Ursache hierfür ist, dass er diese libast.so nicht findet. Ergo schauen wir nach, wo sie denn liegt und kontrollieren, ob der Pfad in /etc/ld.so.conf steht.



root@nebuchadnezzar:~# find / -name libast.so
/usr/lib/libast.so
/usr/local/lib/libast.so
/usr/share/libast-0.6/src/.libs/libast.so
root@nebuchadnezzar:~#


Jo, perfekt... Jetzt wissen wir, wo sich die Lib versteckt.



/usr/local/lib
/usr/lib
/usr/X11R6/lib
/usr/i486-slackware-linux/lib
/opt/kde/lib
/usr/lib/qt/lib


Jo, perfekt. Unser ldconfig sucht also laut config genau in den Ordnern.
Also führen wir ihn mal aus.... Done.... Keine Ausgabe, perfekt.
Dann führen wir Eterm aus und....

W T F !?!??!



root@nebuchadnezzar:~# Eterm
Eterm: error while loading shared libraries: libast.so.1: cannot open shared object file: No such file or directory
root@nebuchadnezzar:~#


Was is da los?

Wär schön, wenn ihr hier alles postet, was man in so einem Fall alles machen kann, wenn ein Prog ne Lib nicht findet. Dann wird das hier mal ne richtig gute Sammlung :)

ldconfig-grüße,
GreenShadow

CEROG
30.11.04, 16:26
Hallo Greenshadow,

es sieht so aus, als ob die eigentliche Datei fehlen würde. Du kannst ja mal in die Verzeichnisse reinschauen. Vermutlich wirst du Links finden, die ins Leere führen.

Das bedeutet, du mußt libast neu installieren.

Viele Grüße,

CEROG

Hun
30.11.04, 16:27
braucht's net, symlinks kann man auch manuell setzen

CEROG
30.11.04, 16:50
Hallo zusammen,

stimmt, kann man. Wenn man eine Datei hat, auf die der Link zeigt. Naja, den Link kann man auch ohne vorhandene Zieldatei anlegen, was aber keinen Sinn macht.

Wenn ich mir die Dateien in /usr/lib anschaue, haben aber alle Library-Dateien 2-3 Stellen bei der Versionskennung, alles was auf ".so", ".so.0" oder ".so.1" endet sind Links.

Viele Grüße,

CEROG

GreenShadow
01.12.04, 14:41
Erm...

Ich hab die Lib doch installiert und die Dateien gibt es demzufolge auch, die Links sind nicht dead.



root@nebuchadnezzar:/usr/lib# ls -lisa libast.*
137531 1980 -rw-r--r-- 1 root root 2023910 2004-11-30 13:39 libast.a
137529 4 -rwxr-xr-x 1 root root 797 2004-11-30 13:39 libast.la*
137528 1 lrwxrwxrwx 1 root root 15 2004-11-30 13:39 libast.so -> libast.so.2.0.0*
137527 1 lrwxrwxrwx 1 root root 15 2004-11-30 13:39 libast.so.2 -> libast.so.2.0.0*
137526 1036 -rwxr-xr-x 1 root root 1060377 2004-11-30 13:39 libast.so.2.0.0*
root@nebuchadnezzar:/usr/lib#


Danke für eure Posts!

MFG,
GreenShadow

GreenShadow
01.12.04, 14:56
Eine kleine Sache konnte ich fixen:

Der wollte ja immer eine "libast.so.1" haben ich aber hatte nur eine "libast.so.2". Also erstellte ich in /usr/lib einen Symlink mit namen "libast.so.1" und ließ ihn auf die Selbe Datei zeigen, wie alle andern auch.

Lustig ist auch folgendes: Wenn ich Eterm compilen will kommt:


. . .
checking for Escreen support... no
checking for Etwin support... no
checking if profiling macros should be included... no
checking for pixmap support... yes
checking for dlopen in -ldl... yes
checking for TT_Init_FreeType in -lttf... no
checking for imlib_create_image in -lImlib2... yes
checking for transparency support... yes
checking for MMX support... yes
checking for libast-config... libast-config
checking for libast_malloc in -last... no
ERROR: You need LibAST 0.5 or higher to build Eterm. If you already have it,
you may have it installed in a strange place, or you may need to run
/sbin/ldconfig. If you don't have it, I can download it for you.
Shall I retrieve and build LibAST now (y/n)?
root@nebuchadnezzar:/usr/share/Eterm-0.9.2#