Re: [eclipse-clp-users] How to compile eclipse under Debian:bullseye with Coin-OR

From: Kish Shen <kish.shen_at_...6...>
Date: Sun, 18 Jul 2021 16:03:36 +0100
Hi,

I think I should say that almost all the eplex development efforts for
the OSI solvers have been for CLP/CBC. There are extensive CBC
specific code to make it more efficient and support more features of
eplex.W

The other solvers only use the generic OSI, which has only very basic
MIP support.

On Sun, Jul 18, 2021 at 9:39 AM Vasily Kartashov <info_at_...430...> wrote:
>
> Hi Kish,
>
> Thanks, I am getting further this time:
>
> #17 8.457 configure: WARNING: Could not find Gmp (4.2 4.1) in /vol/Eclipse/thirdparty
> #17 8.457 checking for __gmpz_import in -lgmp... yes
> #17 8.502 configure: Using OSI clpcbc in /vol/Eclipse/thirdparty/coinclpcbc
> #17 8.504 configure: Using OSI symclp in /vol/Eclipse/thirdparty/coinsymclp
> #17 8.506 configure: Will build OSI interfaces for versions  clpcbc symclp
> #17 8.507 configure: Not building CPLEX interface
>
> But it stops during the build here:
>
> #18 99.81 g++ -shared  eplex.o coinplex.o -L/vol/Eclipse/thirdparty/coinsymclp/x86_64_linux/lib -lOsiSym -lSym -lOsiClp -lCgl -lClp  -lOsi -lCoinUtils -static-libstdc++ -static-libgcc -L../lib/x86_64_linux -leclipse -L.  -lgmp -lpthread -lnsl -ldl -lm   -o x86_64_linux/seosisymclp.so
> #18 99.82 /usr/bin/ld: cannot find -lOsiSym
> #18 99.82 /usr/bin/ld: cannot find -lSym
> #18 99.82 /usr/bin/ld: cannot find -lOsiClp
> #18 99.82 /usr/bin/ld: cannot find -lCgl
> #18 99.82 /usr/bin/ld: cannot find -lClp
> #18 99.82 /usr/bin/ld: cannot find -lOsi
> #18 99.82 /usr/bin/ld: cannot find -lCoinUtils
>
> Here’s my complete dockerfile:
>
> FROM debian:bullseye AS builder
>
> RUN apt update \
> && apt install -y \
> build-essential \
> m4 \
> gfortran \
> tcl-dev \
> tk-dev \
> git \
> subversion \
> wget
>
> ENV GMP_VERSION 4.2.4
> WORKDIR /gmp
> RUN wget https://ftp.gnu.org/gnu/gmp/gmp-${GMP_VERSION}.tar.gz \
> && tar -xvf gmp-${GMP_VERSION}.tar.gz \
> && cd gmp-${GMP_VERSION} \
> && ./configure --prefix=/usr --enable-cxx --enable-mpbsd \
> && make \
> && make install
>
> WORKDIR /eclipse
> RUN git clone https://git.code.sf.net/p/eclipse-clp/git .
> RUN ./configure --with-osi
>
> WORKDIR /eclipse/Eplex
> RUN make -f Makefile.x86_64_linux install_cbc install_sym
> RUN ln -s /vol/Eclipse/thirdparty/coinclpcbc2.9 /vol/Eclipse/thirdparty/coinclpcbc
> RUN ln -s /vol/Eclipse/thirdparty/coinsymclp5.3 /vol/Eclipse/thirdparty/coinsymclp
>
> WORKDIR /eclipse
> RUN ./configure --with-osi
> RUN make -f Makefile.x86_64_linux install
>
> Best,
> Vasily
>
> On 18 Jul 2021, at 1:29 pm, Kish Shen <kish.shen_at_...6...> wrote:
>
> Hi Vasily,
>
> Looking at your log:
>
> 14 336.0 /bin/cp -pr SYMPHONY/x86_64_linux/include/coin/* /vol/Eclipse/thirdparty/coinsymclp5.3/x86_64_linux/include
>
>
> the files are copied to coinstmclp5.3, a version specific (5.3) directory.
>
> While the configure is looking for symclp in:
>
> #16 8.061 configure: WARNING: Could not find x86_64_linux support for symclp in /vol/Eclipse/thirdparty/coinsymclpamd /vol/Eclipse/thirdparty/coinsymclp
>
> symclp, without the version.
>
> The same applies to clpcbc. I normally create a symbolic link from
> clpcbc to clpcbc<version>. It looks like you need to do this yourself,
> as the Makefile rule for installing the OSI solvers don't seem to do
> this.
>
> P.S. Also surprised that configure cannot see GMP.
>
>
> this seems to be because configure requires GMP versions 4.1 or 4.2 -
> these are very old versions of GMP. I don't know if newer versions of
> GMPare not looked for,and I have asked Joachim Schimpf about this.
>
> You can download the source for GMP 4.1 from:
>
> https://eclipseclp.org/Distribution/thirdparty/
>
>
> and build this version of GMP. You should always build ECLiPSe with
> GMP since the new compiler was introduced (I think in 6.0), as this
> ECLiPSe compiler is not fully unfctional without GMP.
>
> BTW, you can find some detailed instructions on building ECLiPSe in:
>
> http://eclipseclp.org/reports/SetupGuide.pdf
>
> and the .doc version of this is available in the ECLiPSe source, under
> documents/internal
>
> unfortunately, it has not been systematically updated, and parts of it
> is very out of date.
>
> Cheers,
>
> Kish
>
> the .doc (i.e. MS word) version of this is available in the ECLiPSe
> source, in documents/internal
>
> On Sat, Jul 17, 2021 at 3:46 AM Vasily Kartashov <info_at_...430...> wrote:
>
>
> Hi Kish,
>
> I am now getting this:
>
> #14 336.0 /bin/cp -pr SYMPHONY/x86_64_linux/include/coin/* /vol/Eclipse/thirdparty/coinsymclp5.3/x86_64_linux/include
> #14 336.0 /bin/cp -pr SYMPHONY/x86_64_linux/lib/* /vol/Eclipse/thirdparty/coinsymclp5.3/x86_64_linux/lib
>
> …
>
> #16 8.015 checking for __gmpz_import in -lgmp... configure: WARNING: Could not find Gmp (4.2 4.1) in /vol/Eclipse/thirdparty
> #16 8.059 yes
> #16 8.061 configure: WARNING: Could not find x86_64_linux support for clpcbc in /vol/Eclipse/thirdparty/coinclpcbcamd /vol/Eclipse/thirdparty/coinclpcbc
> #16 8.061 configure: WARNING: Could not find x86_64_linux support for symclp in /vol/Eclipse/thirdparty/coinsymclpamd /vol/Eclipse/thirdparty/coinsymclp
>
>
> The dockerfile looks like following:
>
>
> FROM debian:bullseye AS builder
>
> RUN apt update && \
>    apt install -y \
>        build-essential \
>        libgmp-dev \
>        tcl-dev \
>        tk-dev \
>        git \
>        subversion
>
> WORKDIR /eclipse
> RUN git clone https://git.code.sf.net/p/eclipse-clp/git .
> RUN ./configure --with-osi
>
> WORKDIR /eclipse/Eplex
> RUN make -f Makefile.x86_64_linux install_cbc
> RUN make -f Makefile.x86_64_linux install_sym
>
> WORKDIR /eclipse
> RUN ./configure --with-osi
> RUN make -f Makefile.x86_64_linux install
> RUN make -f Makefile.x86_64_linux install_documents
>
>
>
> To trigger the build run the following command from the folder with Dockerfile:
>
>
> docker build --progress=plain -t eclipse:latest .
>
>
> Kind regards,
> Vasily
>
> P.S. Also surprised that configure cannot see GMP.
>
>
> On 17 Jul 2021, at 12:03 am, Kish Shen <kish.shen_at_...6...> wrote:
>
> Hi Vasily,
>
> I don't know about Debian Dockerfile, so I don''t know if it requires
> anythingextra.
>
> When configure is run, it will look for COIN-OR related files in the
> third part directory set ECLIPSETHIRDPARTY environment variable.
>
> You probably don't have COIN-OR installed there, but after running
> configure, you can build and install COIN-OR solvers from the Eplex
> directory. Go into the Eplex directory, and run this
>
> make -f Makefile.<platform> install_cbc
> (<platform> is your platform, e.g. x86_64_linux)
>
> and this should download, build, and install CBC/CLP into the third
> party directory.
>
> You can now run configure again, and it should find CBC/CLP.
>
> CBC/CLP is far the best supported COIN-OR solver in eplex, but eplex
> also support other solvers via the generic OSI interface, and there
> are Makefile rules to build SYMPHONY as well. Look at the Makefile if
> you are interested.
>
> Cheers,
>
> Kish
>
>
>
>
>
>
>
>
>
> On Fri, Jul 16, 2021 at 12:19 PM Vasily Kartashov <info_at_...430...> wrote:
>
>
> Hello,
>
> Do you have detailed step by step instructions for compiling eclipse + eplex under debian. I am working on a `Dockerfile`, but
>
> 1) it’s not clear which coinor packages are required
> 2) how to make eclipse aware of them
>
> Currently the Dockerfile looks like this
>
> FROM debian:bullseye AS builder
>
> RUN apt update && \
> apt install -y \
> build-essential \
> libgmp-dev \
> tcl-dev \
> tk-dev \
> git \
> coinor-libcbc-dev \
> coinor-libcgl-dev \
> coinor-libclp-dev \
> coinor-libdylp-dev \
> coinor-libvol-dev
>
> WORKDIR /eclipse
>
> RUN git clone https://git.code.sf.net/p/eclipse-clp/git .
>
> RUN ./configure \
> --with-osi \
> --without-cplex \
> --without-xpress \
> --without-gurobi \
> --without-gfd \
> --without-java \
> --without-flexlm \
> --without-graphviz \
> --without-mysql \
> --without-cpviz
> RUN make -f Makefile.x86_64_linux install
> RUN make -f Makefile.x86_64_linux install_documents
>
> FROM debian:bullseye-slim
>
> COPY --from=builder /eclipse/bin/x86_64_linux/eclipse /usr/local/bin/eclipse
> COPY --from=builder /eclipse/lib /eclipse/lib
> COPY --from=builder /eclipse/lib_public /eclipse/lib_public
>
> ENTRYPOINT [ "eclipse” ]
>
> _______________________________________________
> ECLiPSe-CLP-Users mailing list
> ECLiPSe-CLP-Users_at_lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/eclipse-clp-users
>
>
>
Received on Sun Jul 18 2021 - 15:04:05 CEST

This archive was generated by hypermail 2.3.0 : Tue Apr 16 2024 - 09:13:20 CEST