3

I want to use SCIP optimization suite 6.0.2 together with the Python interface PySCIPOpt, and to enable debugging. I work in Linux - Ubuntu 18.04LTS, without sudo privileges (I avoid using sudo because I want to do the same on a cluster, where I don't have the sudo option). I follow the installation instructions in SCIP and PySCIPOpt, and try to install SCIP in my HOME directory, specifying custom path to the cmake command.

I have done the following:
in my .bashrc I export SCIPOPTDIR=$HOME/scipoptsuite-6.0.2/build

then in ~/scipoptsuite-6.0.2:

cmake -Bbuild -H. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$SCIPOPTDIR

output:

-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find BISON (missing: BISON_EXECUTABLE) 
-- Could NOT find FLEX (missing: FLEX_EXECUTABLE) 
-- Could NOT find GMP (missing: GMP_INCLUDE_DIRS GMP_LIBRARIES) 
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) 
-- Could NOT find GMP (missing: GMP_INCLUDE_DIRS GMP_LIBRARIES) 
-- Build shared libraries: ON
-- Build type: Debug
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) 
-- Could NOT find Readline (missing: Readline_INCLUDE_DIR Readline_LIBRARY) 
-- Could NOT find GMP (missing: GMP_INCLUDE_DIRS GMP_LIBRARIES) 
-- Could NOT find BLISS (missing: BLISS_INCLUDE_DIR BLISS_INCLUDE_DIRS BLISS_LIBRARIES BLISS_DEFINITIONS) 
-- Could NOT find ZIMPL (missing: ZIMPL_DIR)
-- Could NOT find IPOPT (missing: IPOPT_LIBRARIES) (Required is at least version "3.12.0")
-- Looking for FE_DOWNWARD
-- Looking for FE_DOWNWARD - found
-- Could NOT find CRITERION (missing: CRITERION_LIBRARY CRITERION_INCLUDE_DIR) 
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
CMake Warning at scip/doc/CMakeLists.txt:19 (message):
  Could not find all of doxygen, python, php, and bash in system path, which
  are required for generation of documentation


-- Could NOT find CRITERION (missing: CRITERION_LIBRARY CRITERION_INCLUDE_DIR) 
-- Build shared libraries: ON
-- Build type: Debug
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Could NOT find GSL: Found unsuitable version "", but required is at least "2.0" (found GSL_INCLUDE_DIR-NOTFOUND)
-- Could NOT find GMP (missing: GMP_INCLUDE_DIRS GMP_LIBRARIES) 
-- Could NOT find CLIQUER (missing: CLIQUER_INCLUDE_DIRS CLIQUER_LIBRARIES) 
-- Could NOT find BLISS (missing: BLISS_INCLUDE_DIR BLISS_INCLUDE_DIRS BLISS_LIBRARIES BLISS_DEFINITIONS) 
-- The following OPTIONAL packages have been found:

 * PkgConfig

-- The following REQUIRED packages have been found:

 * SOPLEX
 * SCIP

-- The following OPTIONAL packages have not been found:

 * BISON
 * FLEX
 * ZLIB
 * Readline
 * ZIMPL
 * IPOPT (required version >= 3.12.0)
 * Criterion
 * GSL (required version >= 2.0)
 * GMP
 * CLIQUER
 * HMETIS
 * BLISS

-- Configuring done
-- Generating done
-- Build files have been written to: /home/avrech/scipoptsuite-6.0.2/build

then:
cmake --build build

Output:

Scanning dependencies of target soplex_update_githash
-- Git hash: b8833cd3
[  0%] Built target soplex_update_githash
Scanning dependencies of target libsoplex-pic
[  0%] Building CXX object soplex/src/CMakeFiles/libsoplex-pic.dir/soplex/changesoplex.cpp.o
...
[100%] Building C object gcg/src/CMakeFiles/gcg.dir/solver_mip.c.o
[100%] Building C object gcg/src/CMakeFiles/gcg.dir/stat.c.o
[100%] Linking CXX executable ../../bin/gcg
[100%] Built target gcg

At this point scip and soplex binaries exist in build/bin/, and SCIP can be launched as standalone solver by executing build/bin/scip. However, the build/ directory does not contain the include/ dir required for PySCIPOpt.

So according to this, I have tried to install SCIP by running:

cd build  
make install  

Then the error occurs:

-- Git hash: b8833cd3
[  0%] Built target soplex_update_githash
[  5%] Built target libsoplex-pic
[ 11%] Built target libsoplex
[ 11%] Built target soplex
-- Git hash: e639a0059d
[ 11%] Built target scip_update_githash
[ 44%] Built target scip
[ 76%] Built target libscip
-- Git hash: 6a662daa
[ 76%] Built target gcg_update_githash
[ 88%] Built target libgcg
[100%] Built target gcg
Install the project...
-- Install configuration: "Debug"
-- Installing: /home/avrech/scipoptsuite-6.0.2/build/include/soplex/array.h
...
-- Installing: /home/avrech/scipoptsuite-6.0.2/build/include/soplex/wallclocktimer.h
-- Installing: /home/avrech/scipoptsuite-6.0.2/build/include/soplex.h
CMake Error at soplex/src/cmake_install.cmake:149 (file):
  file INSTALL cannot find
  "/home/avrech/scipoptsuite-6.0.2/build/bin/soplex".
Call Stack (most recent call first):
  soplex/cmake_install.cmake:42 (include)
  cmake_install.cmake:42 (include)


Makefile:73: recipe for target 'install' failed
make: *** [install] Error 1

I see that the (probably partial) include/ dir is created, but for unkown reason the soplex executable disappears:

$ ls
bin include ...
$ ls bin
applications  examples  gcg  interfaces  scip

What have I done wrong?

A complete recipe for installing SCIP and PySCIPOpt with the debug option will be the best. (The sudo privileges are available if needed)

Thank you.

1 Answers1

0

You just need to specify a different directory for the install target. Set SCIPOPTDIR to some install/ dir instead of build/ and it should work. You cannot have install and build using the same directories.

PySCIPOpt is searching for the install directory so you always need to run install after building the project.

You don't need sudo for any of this as long as you don't want to install to some system directory.

mattmilten
  • 6,242
  • 3
  • 35
  • 65