On Sun, 14 Sep 2014 21:16:39 -0400 m...@netris.org wrote: > Federico Beffa <be...@ieee.org> writes: > > > Neil Jerram <n...@ossau.homelinux.net> writes: > > > >> > >> This is just a guess, but what happens if you do this: > >> > >> $ LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/guile > >> > >> Regards, > >> Neil > > > > With this it works! > > > > I notice that there is an /etc/ld.so.cache file. Do I somehow need > > to update it? > > Yes, you update it by running "ldconfig" as root. This needs to be > done when installing libraries outside of your package manager, not > only for Guile, but for essentially all packages containing libraries.
I would not recommend doing that where the OP has two _binary compatible_ versions of the same library in different prefixes (as he appears to have), otherwise the one which will be found and linked in will depend on the dynamic linker's look-up order from reading /etc/ld.so.conf. This could be the old micro version where in a given case the OP in fact wants the new one, or conversely the new micro version where he in fact wants the old one. Presumably in the general case he wants the micro version supplied by the distribution's package manager to be linked in, otherwise he would simply have replaced that one with the (binary compatible) newer version of the same library. Presumably also he wants the updated version which he has installed to be linked in instead only when specially called. If that is right, he is much better off putting his updated version in a directory which is _not_ specified in /etc/ld.so.conf, and invoking it on the occasions when he does not want the general case to apply by setting the LD_LIBRARY_PATH environmental variable for that invocation. Then he is guaranteed to have the correct version loaded in. Chris