I am trying to install and run the program Dsuite. To do so, I had to install a newer version of gcc locally (as I do not have root/super user privileges.) I did this with the following commands.
cd /scratch/wdavis/Tools/source/gcc-4.9.4/
./contrib/download_prerequisites
cd /scratch/wdavis/Tools/gcc/
/scratch/wdavis/Tools/source/gcc-4.9.4/configure --prefix /scratch/wdavis/Tools/local/ --disable-multilib
make bootstrap-lean
make install
Everything seemed to work. Then I started on DSuite.
git clone https://github.com/millanek/Dsuite.git
cd Dsuite/
cd utils/
python3 setup.py install --user --prefix=
cd ../
I had to edit the Makefile to tell it where to find the correct version of g++ (/scratch/wdavis/Tools/local/bin/g++
). Then I called make
. Everything seemed to work. However, DSuite gave the following error:
Dsuite: /lib64/libstdc++.so.6: version
GLIBCXX_3.4.20' not found (required by Dsuite)`
I found two answers here and here that suggested "You can try building with -L/usr/local/lib64
, and running with LD_LIBRARY_PATH=/usr/local/lib64
(if necessary).
export LD_LIBRARY_PATH=/scratch/wdavis/Tools/local/lib64/
Let me run Dsuite. However, make -L/scratch/wdavis/Tools/local/lib64/
did not work, i.e., Dsuite gave the same error after rebuilding it.
My questions then are:
How to build a program such that when it is run, the dynamic linker will look in the correct directory for the libraries?
What would happen if I run
export LD_LIBRARY_PATH=/scratch/wdavis/Tools/local/lib64/
, set up Dsuite to run, and then go on to run other programs without resetting LD_LIBRARY_PATH?How do I reset LD_LIBRARY_PATH?
Thanks in advance.
screen
thenexport LD_LIBRARY_PATH=/scratch/wdavis/Tools/local/lib64/
then leavescreen -r
. Dsuite will run with no problem and one is able to run other programs without worry they'll get hung up on the new LD_LIBRARY_PATH. – wjdavis90 May 20 '21 at 14:44