Kjow wroteToo often things are taken for granted by experts.
Too often things are too cryptic and not enough explained.
Well I pointed to
http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html that documents which file links should be present
Using the same example from that article.
/usr/lib/libreadline.so.3.0 :
The real file, it is not a link. Having only this file present, will not allow this library to be used, not by a compiled program, nor a by a linker looking for that library.
/usr/lib/libreadline.so.3:
Fully-qualified soname. Link to above real file.
This is the one that the deployed application
will look for when being executed.
/usr/lib/libreadline.so:
Link to above real file. This is the one the linker will search for.
I am on a rpm based distro now, so will explain with rpm, it is similar for debian.
rpm -qlp libreadline6-6.0-2mdv2010.0.i586.rpm
shows that it only contains
/lib/libhistory.so.6
/lib/libhistory.so.6.0
# ls -l /lib/libreadline*
lrwxrwxrwx 1 root root 18 2009-11-03 20:31 /lib/libreadline.so.6 -> libreadline.so.6.0* -rwxr-xr-x 1 root root 230456 2009-06-28 21:19 /lib/libreadline.so.6.0* So this rpm contains the real filename and the so-name file, a link to the real file. Installing this package allows to run applications that need this library.
There is also a rpm called libreadline-devel, with a description: "Files for developing programs that use the readline library?" after installing this one, you will have:
# ls -l /lib/libreadline*
lrwxrwxrwx 1 root root 16 2010-04-10 22:07 /lib/libreadline.so -> libreadline.so.6* lrwxrwxrwx 1 root root 18 2009-11-03 20:31 /lib/libreadline.so.6 -> libreadline.so.6.0* -rwxr-xr-x 1 root root 230456 2009-06-28 21:19 /lib/libreadline.so.6.0* So it added the .so file, that is a link to the real filename. This is the one that is used by the linker (so for development). This package installs also other things (headers,static lib,...)
Above should have been clear after reading the provided url, I hope it is less cryptic now. So if you are in a situation that you miss a .so and only have a .so.6, you should not start renaming things, but just add file links or install the devel package for that library.
kind regards,
Den Jean