#94 Installing from SVN: libraries not copied/linked correctly?

open
nobody
None
5
2013-09-09
2012-05-19
Bastien Chevreux
No

Hi James,

using Kubuntu 12.04. Just downloaded revision 2963 (latest this Saturday) from SVN.

Installed io_lib like this:
./configure --prefix=/opt/biosw/stadendev
make install

Then installed Staden like this:
../configure --prefix=/opt/biosw/stadendev --with-io_lib=/opt/biosw/stadendev
make install

(both worked like a charm)

But then a problem:
/opt/biosw/stadendev$ bin/gap5
couldn't load file "/opt/biosw/staden/bin/../lib/staden/libtk_utils.so": libstaden-read.so.1: cannot open shared object file: No such file or directory
while executing
"load $env(STADLIB)/${lib_prefix}tk_utils${lib_suffix}"
(file "/opt/biosw/staden/bin/../share/staden/tcl/gap5/gap5.tcl" line 488)

I looked at the "lib directory and found:
/opt/biosw/stadendev/$ ll lib
total 2084
-rw-r--r-- 1 bach bach 1299840 May 19 17:45 libstaden-read.a
-rwxr-xr-x 1 bach bach 1043 May 19 17:45 libstaden-read.la
lrwxrwxrwx 1 bach bach 23 May 19 17:45 libstaden-read.so -> libstaden-read.so.1.1.3
lrwxrwxrwx 1 bach bach 23 May 19 17:45 libstaden-read.so.1 -> libstaden-read.so.1.1.3
-rwxr-xr-x 1 bach bach 812097 May 19 17:45 libstaden-read.so.1.1.3
drwxrwxr-x 2 bach bach 4096 May 19 17:52 staden

I then went into "lib/staden" and linked all files from "lib" to "lib/staden":
cd lib/staden
ln -s ../* .

And then gap5 worked.

Bastien

Discussion

  • James Bonfield
    James Bonfield
    2013-09-09

    (I know it's ages since you posted this, but I wasn't getting email updates and didn't notice sourceforge had stopped sending them.)

    It's questionable whether or not the wrapper scripts should amend LD_LIBRARY_PATH to include prerequisites listed in the ./configure line.

    The assumption is that you have a working io_lib which you're pointing the Staden Package too; ie that convert_trace etc would work without any errors, prior to doing the build and install of Staden. It could put links in "just incase", but it still won't make convert_trace run for example unless you manually source the staden.profile.

    I'm not sure what the right solution is. Fundamentally if the user installs io_lib in a non-system location (which is in all likelihood going to be true) then they also need to manually configure their environment up. The flip side to that argument though is that they're both components of the Staden Package so ought to seamlessly work together. I'll think on it!

    (Let's see if SF actually notifies me now...)