[Techtalk] Installation Help Needed for Pan

Mandi mandi at linuxchick.org
Mon Oct 20 18:18:00 EST 2003


Hiya, Chiq.

welcome to the land of the linker.

> 
> pan: error while loading shared libraries: libgtkspell.so.0: cannot open
> shared object file: No such file or directory
> 
> Odd because a whereis shows this:
> 
> libgtkspell.so: /usr/local/lib/libgtkspell.so.0
> /usr/local/lib/libgtkspell.so

you're right in stating that pan can't find your file libgtkspell.so.0.  
The utility for finding out why is ldd.  

ldd looks for the shared libraries on your system.  The way to use it is 
to point it at your executable (on my example system):

$ which pan
/usr/bin/pan
$ ldd /usr/bin/pan 
        libgnomeui.so.32 => /usr/lib/libgnomeui.so.32 (0x40029000)
        libart_lgpl.so.2 => /usr/lib/libart_lgpl.so.2 (0x40110000)
        libgdk_imlib.so.1 => /usr/lib/libgdk_imlib.so.1 (0x40121000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40148000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40151000)
        libgtk-1.2.so.0 => /usr/lib/libgtk-1.2.so.0 (0x40168000)
        libgdk-1.2.so.0 => /usr/lib/libgdk-1.2.so.0 (0x402ab000)
...

pan has a gazillion different libraries it's utilizing, so that's just a 
partial list.  eventually, you should come to a listing that mentions 
libgtkspell, and it will have an error message next to it that the file is 
not found (example from another program...):

$ ldd uvscan
        liblnxfv.so.4 => ./liblnxfv.so.4 (0x40016000)
        libstdc++.so.2.8 => not found

What your problem could be is that ldd doesn't know about the directory 
/usr/local/lib.  There is a file, ld.so.conf, usually in /etc, that you 
can add that directory to.  It's just a list of directories that contain 
shared library files:

$ cat /etc/ld.so.conf
/usr/X11R6/lib
/usr/lib/qt2/lib
/usr/local/lib
/usr/lib/mysql

Usually /lib and /usr/lib are included by default and don't get listed in 
ld.so.conf.  You should add the directory /usr/local/lib to the file and 
then run the program "ldconfig", which will create a cache file that lets 
ldd find shared libraries.

When you do that, see if "ldd /usr/bin/pan" finds all the libraries it's 
looking for.

hope that helps.  generally, rpms are supposed to go looking for those 
libraries for you, and pan wouldn't have installed without some fussing 
about the hand-built gtkspell.  but that's another battle.

--mandi


More information about the Techtalk mailing list