Error when installing VOTCA in Ubuntu 18.04

79 views
Skip to first unread message

Kim Foo

unread,
Sep 22, 2022, 8:23:58 AM9/22/22
to votca
Dear Christoph,

I am currently in the midst of installing VOTCA on my Ubuntu 18.04 system which I have already installed GROMACS 2019 on but I encountered an error when running the following command:

cmake -B builddir -S votca -DBUILD_XTP=ON -DGROMACS_LIBRARY=/usr/local/gromacs/lib/libgromacs.so  -DGROMACS_INCLUDE_DIR=/usr/local/gromacs/include

The error shown in the terminal states that I do not have any gromacs_version when I have already defined the path for it in the command and checked that the libgromacs.so file does exist in the specified path. The output in the terminal:

-- Found Boost: /home/kimfoo/miniconda3/lib/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.71.0") found components: program_options filesystem system
-- Found Python: /home/kimfoo/miniconda3/bin/python3.9 (found suitable version "3.9.13", minimum required is "3") found components: Interpreter
-- MKL: Thread Layer(GNU OpenMP) Interface(4-byte Integer)
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Could NOT find MKL: Source the compilervars.sh or mklvars.sh scripts included with your installation of MKL. This script searches for the libraries in MKLROOT, LIBRARY_PATHS(Linux), and LIB(Windows) environment variables (missing: MKL_INCLUDE_DIR)
-- Could NOT find MKL: Source the compilervars.sh or mklvars.sh scripts included with your installation of MKL. This script searches for the libraries in MKLROOT, LIBRARY_PATHS(Linux), and LIB(Windows) environment variables (missing: MKL_INCLUDE_DIR MKL_Core_STATIC_LINK_LIBRARY MKL_Interface_STATIC_LINK_LIBRARY MKL_ThreadLayer_STATIC_LINK_LIBRARY)
-- Found OpenMP_CXX: -fopenmp (found suitable version "4.5", minimum required is "4.5")
-- Found OpenMP: TRUE (found suitable version "4.5", minimum required is "4.5")
-- Found Eigen3: /home/kimfoo/miniconda3/share/eigen3/cmake
-- Checking for module 'fftw3'
--   /usr/share/modules/init/bash: line 36: /usr/bin/tclsh: No such file or directory
No package 'fftw3' found
-- Found Python: /home/kimfoo/miniconda3/bin/python3.9 (found suitable version "3.9.13", minimum required is "3.5") found components: Interpreter
-- Found Boost: /home/kimfoo/miniconda3/lib/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.71.0") found components: program_options filesystem system regex
-- Found Eigen3: /home/kimfoo/miniconda3/share/eigen3/cmake
-- Found VOTCA_TOOLS:
-- Checking for module 'libgromacs_d'
--   /usr/share/modules/init/bash: line 36: /usr/bin/tclsh: No such file or directory
No package 'libgromacs_d' found
CMake Error at csg/CMakeModules/FindGROMACS.cmake:58 (message):
  Could not find a suitable gromacs library.  gmx_version is not defined in
  the gromacs library, that is very very strange, take a look at the error
  message in /home/kimfoo/builddir/CMakeFiles/CMakeError.log to find out what
  was going wrong.  This most likely means that your gromacs version is too
  old, we need at least gromacs 2016!
Call Stack (most recent call first):
  CMakeLists.txt:132 (_find_package)
  csg/CMakeLists.txt:80 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/kimfoo/builddir/CMakeFiles/CMakeOutput.log".
See also "/home/kimfoo/builddir/CMakeFiles/CMakeError.log".

I have attached the CMakeError.log file for reference. I checked the error and there are a two warnings:

/home/kimfoo/miniconda3/bin/ld: warning: libhwloc.so.15, needed by /usr/local/gromacs/lib/libgromacs.so, not found (try using -rpath or -rpath-link)
/home/kimfoo/miniconda3/bin/ld: warning: libgomp.so.1, needed by /usr/local/gromacs/lib/libgromacs.so, not found (try using -rpath or -rpath-link)

I am not sure if these are the reasons for the failure in cmake command. I am fairly new to cmake so any advice that you have will be greatly appreciated. Would you suggest that I use -DBUILD_OWN_GROMACS=ON ? However, the version I would like to install is the 2019 version because I find that the csg-tutorials can run with the 2019 version but not newer.

Thank you very much for your time.

Best regards,
Kimberly
CMakeOutput.log
CMakeError.log

Christoph Junghans

unread,
Sep 22, 2022, 9:50:05 AM9/22/22
to vo...@googlegroups.com, jan.j...@outlook.com
This is the problem, you will have to look where libhwloc.so.15 and
libgomp.so.1 are and then set the LD_LIBRARY_PATH correctly, something
like:
$ export LD_LIBRARY_PATH=/path/to/lib:${LD_LIBRARY_PATH}
There might be a more conda-ish way to do it, but I am not a conda
expert. I am CC'ing Jan, who knows much more about conda than I.

Christoph

>
> I am not sure if these are the reasons for the failure in cmake command. I am fairly new to cmake so any advice that you have will be greatly appreciated. Would you suggest that I use -DBUILD_OWN_GROMACS=ON ? However, the version I would like to install is the 2019 version because I find that the csg-tutorials can run with the 2019 version but not newer.
>
> Thank you very much for your time.
>
> Best regards,
> Kimberly
>
> --
> Join us on Slack: https://join.slack.com/t/votca/signup
> ---
> You received this message because you are subscribed to the Google Groups "votca" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to votca+un...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/votca/df5e618e-c383-4d84-bf14-6a13c6d18e28n%40googlegroups.com.



--
Christoph Junghans
Web: http://www.compphys.de

Kim Foo

unread,
Sep 24, 2022, 5:12:17 AM9/24/22
to votca
Dear Christoph,

Thank you for pointing out the reason for the error. I have managed to install VOTCA successfully. 

I have a question regarding the gmx binary file, that is located inside /usr/local/gromacs/bin. Everytime i run csg_inverse --options settings.xml, I get this error:

ERROR:                                                                            
# run_gromacs.sh: grompp binary '/usr/bin/gmx_d' not found                          
# For details see the logfile /home/kimfoo/votca/csg-tutorials/spce/ibi/inverse.log 

I solved the problem by adding the path to the binary in the settings.xml file, however, is there any way to allow VOTCA to read the path to the file (maybe by defining it in .bashrc etc.) without having to define the path in every settings.xml file?

I have tried to put the path into .bashrc as follows:
export PATH=$PATH:/usr/local/share/votca
export PATH=$PATH:/usr/local/gromacs/bin
export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gromacs/lib

However, I still obtain the same error.

I am thinking of changing the default path inside csg_defaults.xml, but user permission is required, and I was wondering if there is a more elegant method.

 Any help on this would be greatly appreciated.

Regards,
Kimberly

Christoph Junghans

unread,
Sep 24, 2022, 10:24:11 AM9/24/22
to vo...@googlegroups.com
On Sat, Sep 24, 2022 at 3:12 AM Kim Foo <kimberly...@gmail.com> wrote:
>
> Dear Christoph,
>
> Thank you for pointing out the reason for the error. I have managed to install VOTCA successfully.
>
> I have a question regarding the gmx binary file, that is located inside /usr/local/gromacs/bin. Everytime i run csg_inverse --options settings.xml, I get this error:
>
> ERROR:
> # run_gromacs.sh: grompp binary '/usr/bin/gmx_d' not found
> # For details see the logfile /home/kimfoo/votca/csg-tutorials/spce/ibi/inverse.log
>
> I solved the problem by adding the path to the binary in the settings.xml file, however, is there any way to allow VOTCA to read the path to the file (maybe by defining it in .bashrc etc.) without having to define the path in every settings.xml file?
>
> I have tried to put the path into .bashrc as follows:
> export PATH=$PATH:/usr/local/share/votca
> export PATH=$PATH:/usr/local/gromacs/bin
> export PATH=$PATH:/usr/local/bin
> export PATH=$PATH:/usr/local/lib
> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gromacs/lib
>
> However, I still obtain the same error.
>
> I am thinking of changing the default path inside csg_defaults.xml, but user permission is required, and I was wondering if there is a more elegant method.
VOTCA detects the gmx binary at CMake time and puts whatever it finds
into the defaults. In your case apparently /usr/bin/gmx_d was found.
You can change that by setting the path etc BEFORE you run CMake, so
the right gmx gets picked up. You can also force CMake to use a
certain gmx binary by setting -DGMX_EXECUTABLE=/path/to/gmx as an
CMake option.
Or as you suggest you can change the default in csg_defaults.xml
Or you can overwrite the gmx binary in your settings file as well.
(cg.inverse.gromacs.mdrun.command)
Or you can also set the CSG_MDRUN_CMD environment variable.

Pick your poison.

Christoph
> To view this discussion on the web visit https://groups.google.com/d/msgid/votca/3dee86f4-4570-46f8-8a79-8a463a37c60fn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages