Question: Installation of Bioconductor package: lpsymphony
0
2.6 years ago by
Haiying.Kong110
Germany
Haiying.Kong110 wrote:

we are trying to install lpsymphony in a local installation of R-3.3.2. A large part of the build process runs without problems, but at some point the build process ends with a linker error:

... g++ -I/home/kong/lib/R-3.3.2/include -DNDEBUG -ISYMPHONY/include -I/usr/local/include -fpic -g -O2 -c lp_symphony.cc -o lp_symphony.o g++ -shared -L/usr/local/lib64 -o lpsymphony.so lp_symphony.o -LSYMPHONY/lib -lSym -lCgl -lOsiClp -lClp -lOsi -lCoinUtils -L/home/kong/lib/R-3.3.2/lib -lRlapack -L/home/kong/lib/R-3.3.2/lib -lRblas -lgfortran -lm -lquadmath /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lSym /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lCgl /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lOsiClp /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lClp /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lOsi /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lCoinUtils collect2: error: ld returned 1 exit status make: * [lpsymphony.so] Error 1 ERROR: compilation failed for package ‘lpsymphony’ * removing ‘/tmp/RtmpPpE9zD/Rinst108f25132dc6/lpsymphony’

The LD_LIBRARY_PATH variable is set to the installation directory of SYMPHONY-5.6.16:

$echo$LD_LIBRARY_PATH /home/kong/lib/SYMPHONY-5.6.16/lib64/

and that path contains all the shared libraries reported to be missing in the linker error.

Unfortunately, I have not yet been able to tell R to keep the build-directory or report the exact option to the configure script, which hampers the analysis of the issue.

lpsymphony • 643 views
modified 2.6 years ago by rreck20 • written 2.6 years ago by Haiying.Kong110

Maybe I'm missing something, but isn't the point of lpsymphony to remove the need to have SYMPHONY already installed on the system.  From the package's DESCRIPTION file:

The main difference between this package and Rsymphony is that it includes the solver source code (SYMPHONY version 5.6), while Rsymphony expects to find header and library files on the users' system. Thus the intention of lpsymphony is to provide an easy to install interface to SYMPHONY.

I just installed the package on a Ubuntu 16.04 based system by running biocLite('lpsymphony') without any system installation or changes to my library path.  Maybe you're actually creating the conflict by specifying your own location in LD_LIBRARY_PATH?

Answer: Installation of Bioconductor package: lpsymphony
0
2.6 years ago by
Haiying.Kong110
Germany
Haiying.Kong110 wrote:

I believe you are right on that lpsymphony does not need to have SYMPHONY installed, this we later found out.

When I first tried to install lpsymphony with biocLite('lpsymphony'), I did not have SYMPHONY on my system, but the error message was exactly the same.

If you're still trying to get hold of the complete output from the installation, you can try using the linux script command.  In a terminal you'd do something like:

$script /my/logfile.txt$ R
> BiocInstaller::biocLite("lpsymphony")
.......
> q()
\$ exit

Everything that was printed to screen should also be saved /my/logfile.txt

Answer: Installation of Bioconductor package: lpsymphony
0
2.6 years ago by
rreck20
Fairfax County, VA
rreck20 wrote:

In the past to get g++ to get the correct value to install packages, I have also had to set LIBRARY_PATH.

I am not sure if you have root access but, to make the sure the linker finds .so files, I have added the directory to /etc/ld.so.conf and then run ldconfig.