R 3.6.1 + Gurobi 9.0.1

Comments

8 comments

  • Matthias Miltenberger

    Hi Dirk,

    Did you follow the guide about installing Gurobi (without R)? Especially the part about setting the "LD_LIBRARY_PATH" environment variable seems to be incorrect on your system. You need to tell the Linux system where to find the runtime libraries of Gurobi. To test your installation, you can also try running "gurobi_cl" in the terminal.

    Cheers,
    Matthias

    0
    Comment actions Permalink
  • Dirk Degel

    Hi Matthias,

    Thanks a lot for your quick reply. Yes, I followed the instructions given in the "software installation guide". I'm using the bash shell and was running the 3 commands, especially "export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib". The gurobi command line tool (gurobi_cl) and the interactive shell (gurobi.sh) are both working. I can also invoke gurobi from Julia/JuMP.

    Also the installation of the R package itself was successful (did not exit with an error message). It seems that the R package itself is somehow broken. In the directory

    ".../R/x86_64-pc-linux-gnu-library/3.6/gurobi/libs/"

    only "gurobi.so" exists but not "libgurobi90.so".

    Maybe R is not supported in gurobi 9?

    Cheers,

    Dirk

    0
    Comment actions Permalink
  • Matthias Miltenberger

    Hi Dirk,

    I just set up a new fresh Rstudio installation using R 3.6.3 and Gurobi 9.0.1 on Windows. Everything works fine after installing Rtools and slam.

    I will repeat this process on Ubuntu to check whether there are any issues.

    Cheers,
    Matthias

    0
    Comment actions Permalink
  • Matthias Miltenberger

    Hi Dirk,

    To make Gurobi 9.0.1 work in Rstudio you need to define the LD_LIBRARY_PATH to point to the lib directory in your Gurobi installation. To check whether your system can find the Gurobi library, you can run this:

    ldd ~/R/x86_64-pc-linux-gnu-library/3.6/gurobi/libs/gurobi.so

    There should be no undefined references in the output. This is how it looks on my system:

    linux-vdso.so.1 (0x00007ffd9b990000)
    libgurobi90.so => /home/miltenberger/gurobi901/linux64/lib/libgurobi90.so (0x00007f8c9dcd1000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8c9dc9c000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8c9daab000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8c9daa0000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8c9da9a000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8c9d949000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f8ca079b000)

    Cheers,
    Matthias

    0
    Comment actions Permalink
  • Dirk Degel

    Hi Matthias,

    Thanks a lot again for your help!

    On my system it looks like this:

    ```

    linux-vdso.so.1 (0x00007ffeb9126000)
    libgurobi90.so => /opt/gurobi901/linux64/lib/libgurobi90.so (0x00007f068eb89000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f068eb4f000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f068e95e000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f068e953000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f068e94d000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f068e7fe000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f0691653000)

    ```

    If I understand it correctly it looks fine. The only difference I can see is that gurobi is installed into "opt" instead of "home". But I think that's ok (That is the default in the installation guide)?

    Cheers Dirk

    0
    Comment actions Permalink
  • Matthias Miltenberger

    Hi Dirk,

    Yes, this looks good. Can you confirm that the LD_LIBRARY_PATH also works in any fresh terminal?

    Thanks,
    Matthias

    0
    Comment actions Permalink
  • Dirk Degel

    Hi Matthias,

    Yes, if I reboot the machine and run again the command:

    ```

    ldd ~/R/x86_64-pc-linux-gnu-library/3.6/gurobi/libs/gurobi.so

    ```

    I get again the same output as above. What confuses me is that the path stated in this output is:

    ```

    libgurobi90.so => /opt/gurobi901/linux64/lib/libgurobi90.so (0x00007f932a80c000)

    ```

    But the `R` error message says that the file or directory ` libgurobi90.so` can't be found in:

    ```

    /home/dirk/R/x86_64-pc-linux-gnu-library/3.6/gurobi/libs/gurobi.so

    ```

    Is the problem maybe related to this?

    Thanks a lot for your help.

    Cheers Dirk

     

     

    0
    Comment actions Permalink
  • Lanlan Ji

    The problem for me was I had to include the environmental variable changes in both ~/.bashrc and ~/.profile.

    You might notice that you'll get this error starting r-studio from double clicking an rfile but not when starting r-studio from the terminal. This is because bash reads from .bashrc but many gui programs only read from .profile.

    1
    Comment actions Permalink

Please sign in to leave a comment.

Powered by Zendesk