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:23:04 +0100
Sorry, I think I pressed the wrong key which sent the message earrly....

What I was trying to say is that the symclp interface is out-of-date,
as it has not been developed or compiled for recently. CLPCBC gave the
best performance when we first developed the interface, and it has
received extensive development since then to allow itt to support more
of eplex's features, and to give better performance.

We have not biuilt the symclp interface recemtly, so there may be
issues with it. However, you seem to have more basic problems:

>#18 99.82 /usr/bin/ld: cannot find -lOsiSym
>#18 99.82 /usr/bin/ld: cannot find -lSym

Check your /vol/Eclipse/thirdparty/coinsymclp/x86_64_linux/lib
directory, are the needed .a files in there?

If not, something went wrong building SYMPONY. If the .a files are
there, then I don't understand your problem.

Cheers,

Kish

On Sun, Jul 18, 2021 at 4:03 PM Kish Shen <kish.shen_at_...6...> wrote:
>
> 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:23:28 CEST

This archive was generated by hypermail 2.3.0 : Wed Sep 25 2024 - 15:13:21 CEST