On Sat, 24 May 2014 23:12:21 -0600 Germán Arias <germanan...@gmx.es> wrote: > Hi Mark > > On 2014-05-24 15:21:11 -0600 mark damerell > <markdamer...@googlemail.com> wrote: > > > Trying to install guile 2.0.11 on L-ubuntu 12.04. Shell > > is /bin/bash . > > > > Downloaded the tarfile from the Gnu website. > > > > configured with no options > > > > make check produced warnings and "unresolved" messages and one > > failure, bug 27450. It said "please report this" but I believe that > > as this is a known > > bug, you do not want me to. > > > > > > make install ran with no visible error. > > > > > > make installcheck failed. After several "nothing to do" messages, > > it said: > > > > make[1]: Entering directory > > `/home/manager/downloads/guile-2.0.11/examples' /bin/mkdir -p box > > gcc `PATH=/usr/local/bin:$PATH > > PKG_CONFIG_PATH=/usr/local/lib/pkgconfig /usr/local/bin/guile-config > > compile` -c box/box.c -o box/box.o /usr/local/bin/guile: error > > while loading shared libraries: libguile-2.0.so.22: cannot open > > shared object file: No such file or directory > > box/box.c:22:22: fatal error: libguile.h: No such file or directory > > compilation terminated. > > make[1]: *** [box/box.o] Error 1 > > > > > > The shell command > > > > guile > > > > produces > > > > guile: error while loading shared libraries: libguile-2.0.so.22: > > cannot open shared object file: No such file or directory > > > > > > find(1) found both files: > > > > /usr/local/include/guile/2.0/libguile.h > > /usr/local/lib/libguile-2.0.so.22 > > > > > > I conjecture that gcc was using incorrect search paths. So I did: > > > > printenv | grep -i path > > > > and got: > > > > XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0 > > XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 > > DEFAULTS_PATH=/usr/share/gconf/Lubuntu.default.path > > PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games > > MANDATORY_PATH=/usr/share/gconf/Lubuntu.mandatory.path > > > > > > I expected to see a CPATH and a LIBRARY_PATH as described in > > man gcc. > > > > Please is this problem known? what should I do about it? Thank you. > > > > In general, when you install something from a source tarball this is > installed in non standard path. So, to use guile you should add the > path where this is installed. At your file ".profile" (in your user > directory) you could add: > > export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib > > To use the headers, you will need make a symbolic link > at /usr/include. Something like: > > sudo ln -s /usr/local/include/guile/ /usr/include/ > > Hope this help.
Yuck. It is much better to add /usr/local/lib to /etc/ld.so.conf (or one of the files in /etc/ld.so.conf.d) and run ldconfig. I am amazed that some distributions still do not do this by default. (The OP says he is using lubuntu, but standard ubuntu is installed on one of my computers and that does do so.) The correct way to find a header is by using pkg-config with guile's pkg-config file (guile-2.0.pc). If the build system's 'make installcheck' does not do this then it is technically a bug but 'make installcheck' is widely unused and/or broken for this amongst other reasons and is best ignored. Use 'make check' instead, which uses the internal build tree. And it is not a good idea to start making symlinks. Chris