.so buscar rutas

Soy un principiante de Linux (procedente de un fondo de Windows). Me gustaría entender los detalles de cómo se cargan los objetos compartidos (archivos .so) en tiempo de ejecución. De acuerdo ahttp://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html El archivo /etc/ld.so.conf configura los directorios para buscar archivos .so en tiempo de ejecución. Sin embargo, un experimento que se muestra a continuación parece indicar que ese no es el caso. / usr / local / lib está en uno de los archivos .conf en /etc/ld.so.conf.d, pero cuando .so está en / usr / local / lib no se encuentra en tiempo de ejecución. A la inversa / usr / lib esno configurado por /etc/ld.so.conf, pero cuando mi .so está en / usr / lib ites encontrado en tiempo de ejecución.

¿Qué me estoy perdiendo?

Gracias Dave

davids@ds-ub64-7:/$ # Display the .so search path configured in /etc/ld.so.conf
davids@ds-ub64-7:/$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
davids@ds-ub64-7:/$ cat /etc/ld.so.conf.d/*.conf
/usr/lib/mesa
/usr/lib32/mesa
/usr/lib32/alsa-lib
/usr/lib/alsa-lib
# libc default configuration
/usr/local/lib
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu

davids@ds-ub64-7:/$ # libsotest.so.1 is in /usr/local/lib
davids@ds-ub64-7:/$ ls -la /usr/local/lib/libsotest*
lrwxrwxrwx 1 root   root     14 2012-07-19 08:24 /usr/local/lib/libsotest.so -> libsotest.so.1
lrwxrwxrwx 1 root   root     18 2012-07-19 08:24 /usr/local/lib/libsotest.so.1 ->     libsotest.so.1.0.1
-rwxr-xr-x 1 davids davids 7952 2012-07-19 08:13 /usr/local/lib/libsotest.so.1.0.1

davids@ds-ub64-7:/$ # But when I run an executable that refrs to libsotest.so.1, the loader     doesn't find it.
davids@ds-ub64-7:/$ /projects/sotest/exe/sotestexe
/projects/sotest/exe/sotestexe: error while loading shared libraries: libsotest.so.1: cannot     open shared object file: No such file or directory

davids@ds-ub64-7:/$ # Configure loader to display the paths it's searching...it's     searching /usr/lib but not /usr/local/lib
davids@ds-ub64-7:/$ export LD_DEBUG=lib
davids@ds-ub64-7:/$ /projects/sotest/exe/sotestexe
warning: debug option `lib' unknown; try LD_DEBUG=help
/projects/sotest/exe/sotestexe: error while loading shared libraries: libsotest.so.1: cannot     open shared object file: No such file or directory
davids@ds-ub64-7:/$ export LD_DEBUG=libs
davids@ds-ub64-7:/$ /projects/sotest/exe/sotestexe
      6691: find library=libsotest.so.1 [0]; searching
      6691:  search cache=/etc/ld.so.cache
      6691:  search     path=/lib/tls/x86_64:/lib/tls:/lib/x86_64:/lib:/usr/lib/tls/x86_64:/usr/lib/tls:/usr/lib/x86_64:/usr/    lib:/lib/x86_64-linux-gnu/tls/x86_64:/lib/x86_64-linux-gnu/tls:/lib/x86_64-linux-    gnu/x86_64:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/tls/x86_64:/usr/lib/x86_64-linux-    gnu/tls:/usr/lib/x86_64-linux-gnu/x86_64:/usr/lib/x86_64-linux-gnu        (system search path)
      6691:   trying file=/lib/tls/x86_64/libsotest.so.1
      6691:   trying file=/lib/tls/libsotest.so.1
      6691:   trying file=/lib/x86_64/libsotest.so.1
      6691:   trying file=/lib/libsotest.so.1
      6691:   trying file=/usr/lib/tls/x86_64/libsotest.so.1
      6691:   trying file=/usr/lib/tls/libsotest.so.1
      6691:   trying file=/usr/lib/x86_64/libsotest.so.1
      6691:   trying file=/usr/lib/libsotest.so.1
      6691:   trying file=/lib/x86_64-linux-gnu/tls/x86_64/libsotest.so.1
      6691:   trying file=/lib/x86_64-linux-gnu/tls/libsotest.so.1
      6691:   trying file=/lib/x86_64-linux-gnu/x86_64/libsotest.so.1
      6691:   trying file=/lib/x86_64-linux-gnu/libsotest.so.1
      6691:   trying file=/usr/lib/x86_64-linux-gnu/tls/x86_64/libsotest.so.1
      6691:   trying file=/usr/lib/x86_64-linux-gnu/tls/libsotest.so.1
      6691:   trying file=/usr/lib/x86_64-linux-gnu/x86_64/libsotest.so.1
      6691:   trying file=/usr/lib/x86_64-linux-gnu/libsotest.so.1
      6691: 
/projects/sotest/exe/sotestexe: error while loading shared libraries: libsotest.so.1: cannot     open shared object file: No such file or directory
davids@ds-ub64-7:/$

Respuestas a la pregunta(1)

Su respuesta a la pregunta