FYI, looking at this issue from a "non-packaged" perspective, modules are expected to be found in /lib, /usr/lib,
or any directory listed in /etc/ld.so.conf
If you noodle around those directories, you'll notice that this directory contains a lot of variously-named files and
"symbolic links" (indicated by "->") such as:
/lib/libssl.so.0.9.7 -> libssl.so.0.9.7a
/lib/libssl.so.2 -> libssl.so.0.9.6b
/lib/libssl.so.4 -> libssl.so.0.9.7a
/lib/libss.so.2 -> libss.so.2.0
When a program wants to open a library, it can be generic (requesting "libssl.so.2") or it can be specific (I want "libssl.so.0.9.7a"). There will always
be a symbolic-link for the major-version, such as "so.2."
There's just one more twist: the loader doesn't do a directory-search every time. It relies upon a library cache
which is maintained by a program /sbin/ldconfig
, which can only be run by root
and which is normally run as part of package installation.
If a library that you expect to find "doesn't seem to be working," sometimes a re-run of ldconfig
can fix it.