ldd reports shared library missing, but library exists on disk
I have the following problem: In a SuSe machine the graphical environment suddenly stopped working.
I checked the /var/log/kdm.log and at its end it says:
/opt/kde3/bin/kdm_greet: error while loading shared libraries: libkdeui.so.4: cannot open shared object: No such file or directory
I run ldd /opt/kde3/bin/kdm_greet and I get that it cannot find:
They all are in the directory /opt/kde3/lib and /opt/kde3/lib64 and these directories are listed in /etc/ld.so.conf.
I also checked their permissions and they seem ok.
Anyone knows why they cannot be found even though they exist on disk?
Edit: Please disregard. Upon rereading your post I see that you mention "/etc/ld.so.conf" I guess I have a reading comprehension problem.
Take a look at:
Can you post the output of
lrwxrwxrwx 1 root root 17 Dec 15 2007 /opt/kde3/lib/libkdeui.so.4 -> libkdeui.so.4.2.0
/opt/kde3/lib/libkdeui.so.4: symbolic link to `libkdeui.so.4.2.0'
lrwxrwxrwx 1 root root 17 Dec 15 2007 /opt/kde3/lib64/libkdeui.so.4 -> libkdeui.so.4.2.0
/opt/kde3/lib64/libkdeui.so.4: symbolic link to `libkdeui.so.4.2.0'
lrwxrwxrwx 1 root root 19 Dec 15 2007 /opt/kde3/lib/libkdecore.so.4 -> libkdecore.so.4.2.0
/opt/kde3/lib/libkdecore.so.4: symbolic link to `libkdecore.so.4.2.0'
lrwxrwxrwx 1 root root 19 Dec 15 2007 /opt/kde3/lib64/libkdecore.so.4 -> libkdecore.so.4.2.0
/opt/kde3/lib64/libkdecore.so.4: symbolic link to `libkdecore.so.4.2.0'
lrwxrwxrwx 1 root root 17 Dec 15 2007 /opt/kde3/lib/libkdefx.so.4 -> libkdefx.so.4.2.0
/opt/kde3/lib/libkdefx.so.4: symbolic link to `libkdefx.so.4.2.0'
lrwxrwxrwx 1 root root 17 Dec 15 2007 /opt/kde3/lib64/libkdefx.so.4 -> libkdefx.so.4.2.0
/opt/kde3/lib64/libkdefx.so.4: symbolic link to `libkdefx.so.4.2.0'
Did you use some kind of external repository or non-official packages or something like that?
Even if the libraries are there that doesn't mean that kdm_greet can link to them. That can happen for example if they have been compiled against different versions of a base library (for example if those libs and kdm_greet were compiled against different versions of qt). Another cause could be that the libraries are corrupt, had been compiled for another architectures...
For the rest I know nothing about SuSE these days so I can't give any more concrete idea.
To the best of my knowledge no one that uses this machine has done any updates or installed something. The libraries were installed during the first setup of the machine and I don't think that they have changed since, so probable they are not corrupt.
ok, so they're just symlinks ...
Can you repeat the above and replace the .4 in the snippet
with a .4.2.0 ?
Ok, it seems that running ldconfig did the job. The system is back to normal. I don't understand why the database had become corrupt.
Anyway, thanks for your replies.
|All times are GMT -5. The time now is 11:50 AM.|