Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

When trying to start evince Ubuntu 12.04 responds me:

% evince
evince: error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or directory

On the other hand ldd reports no problems.

% ldd /usr/bin/evince
    linux-vdso.so.1 =>  (0x00007fffa15ff000)
    libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007f57bdb04000)
    libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007f57bd8ea000)
    libevdocument3.so.4 => /usr/lib/libevdocument3.so.4 (0x00007f57bd6b5000)

I suppose there must be a problem with loading shared libraries. libSM is just a first one. Asking Ubuntu to be more verbose did not bring any idea to me.

% export LD_DEBUG=all
% evince
      6574: file=libSM.so.6 [0];  needed by evince [0]
      6574: find library=libSM.so.6 [0]; searching
      6574:  search cache=/etc/ld.so.cache <----- why not found?
      6574:  search path=/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:/lib/tls/x86_64:/lib/tls:/lib/x86_64:/lib:/usr/lib/tls/x86_64:/usr/lib/tls:/usr/lib/x86_64:/usr/lib        (system search path)
      6574:   trying file=/lib/x86_64-linux-gnu/tls/x86_64/libSM.so.6
      6574:   trying file=/lib/x86_64-linux-gnu/tls/libSM.so.6
      6574:   trying file=/lib/x86_64-linux-gnu/x86_64/libSM.so.6
      6574:   trying file=/lib/x86_64-linux-gnu/libSM.so.6
      6574:   trying file=/usr/lib/x86_64-linux-gnu/tls/x86_64/libSM.so.6
      6574:   trying file=/usr/lib/x86_64-linux-gnu/tls/libSM.so.6
      6574:   trying file=/usr/lib/x86_64-linux-gnu/x86_64/libSM.so.6
      6574:   trying file=/usr/lib/x86_64-linux-gnu/libSM.so.6 <----- why it fails?
      6574:   trying file=/lib/tls/x86_64/libSM.so.6
      6574:   trying file=/lib/tls/libSM.so.6
      6574:   trying file=/lib/x86_64/libSM.so.6
      6574:   trying file=/lib/libSM.so.6
      6574:   trying file=/usr/lib/tls/x86_64/libSM.so.6
      6574:   trying file=/usr/lib/tls/libSM.so.6
      6574:   trying file=/usr/lib/x86_64/libSM.so.6
      6574:   trying file=/usr/lib/libSM.so.6
evince: error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or directory  


% unset LD_DEBUG
% ls -l /usr/lib/x86_64-linux-gnu/libSM.so.6
lrwxrwxrwx 1 root root 14 lip 25  2012 /usr/lib/x86_64-linux-gnu/libSM.so.6 -> libSM.so.6.0.1
% ls -l /usr/lib/x86_64-linux-gnu/libSM.so.6.0.1 
-rw-r--r-- 1 root root 30888 mar  2  2012 /usr/lib/x86_64-linux-gnu/libSM.so.6.0.1

Problem occurs with evince only. Other programs run flawlessly.

Regenerating /etc/ld.so.cache changes nothing.

% ldconfig
% ls -l /etc/ld.so.cache 
-rw-r--r-- 1 root root 84443 lis  6 17:17 /etc/ld.so.cache
% evince
evince: error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or directory

gv depends on libSM also and runs without problems. Let's compare

% gv
      6605:     file=libXaw3d.so.6 [0];  needed by gv [0]
      6605:     find library=libXaw3d.so.6 [0]; searching
      6605:      search cache=/etc/ld.so.cache
      6605:       trying file=/usr/lib/x86_64-linux-gnu/libXaw3d.so.6
      6605:     file=libXaw3d.so.6 [0];  generating link map
      6605:       dynamic: 0x00007f1b68327b88  base: 0x00007f1b680d5000   size: 0x000000000025e560
      6605:         entry: 0x00007f1b680ea9e0  phdr: 0x00007f1b680d5040  phnum:                  7
      6605:     file=libSM.so.6 [0];  needed by /usr/lib/x86_64-linux-gnu/libXt.so.6 [0]
      6605:     find library=libSM.so.6 [0]; searching
      6605:      search cache=/etc/ld.so.cache
      6605:       trying file=/usr/lib/x86_64-linux-gnu/libSM.so.6
      6605:     file=libSM.so.6 [0];  generating link map
      6605:       dynamic: 0x00007f1b66e4fdb8  base: 0x00007f1b66c49000   size: 0x0000000000207158
      6605:         entry: 0x00007f1b66c4ab20  phdr: 0x00007f1b66c49040  phnum:                  7

Here loader finds entry in its cache.

share|improve this question

closed as off-topic by Mitch Mar 25 '14 at 7:18

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Bug reports and problems specific to development version of Ubuntu should be reported on Launchpad so that developers can see, track and fix these issues." – Mitch
If this question can be reworded to fit the rules in the help center, please edit the question.

Maybe you have to regenerate /etc/ld.so.cache, try with ldconfig. –  chaos Nov 6 '13 at 15:53

1 Answer 1

We can reproduce this issue on a 12.04 system with

/usr/lib a symlink (from ext4 mounted /) to /usr1/lib (ext3 mounted /usr1)

Moving /usr1/lib into /usr fixes the issue.

It happens with evince only, not other programs like gv which uses libSM

Did the original poster have split mounts/varying filesystems as well?

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.