Cómo compilar desde el código fuente OR-Tools Java en Linux

Introducción

En esta guía, se explica cómo compilar desde las herramientas OR de origen, con compatibilidad para Java, en Linux.

A menos que planees modificar el código fuente o usar un solucionador de problemas de terceros con herramientas del operador OR, te recomendamos la instalación del paquete.

Aunque estas instrucciones también pueden funcionar en otras variantes de Linux, solo las probamos en máquinas que cumplen con los siguientes requisitos:

  • Alpine Edge de 64 bits (x86_64)
  • Centos 7 LTS de 64 bits (x86_64)
  • SID de Debian de 64 bits (x86_64)
  • Debian 11 (bullseye) de 64 bits (x86_64)
  • Fedora 38 de 64 bits (x86_64)
  • Fedora 37 de 64 bits (x86_64)
  • OpenSuse Leap de 64 bits (x86_64)
  • Ubuntu 23.10 de 64 bits (x86_64)
  • Ubuntu 22.04 LTS de 64 bits (x86_64)
  • Ubuntu 20.04 LTS de 64 bits (x86_64)

Requisitos previos

En las siguientes secciones, se describen los requisitos previos para instalar las herramientas del operador OR.

Herramientas de C++

Para instalar las herramientas de C++, abre una ventana de terminal y escribe lo siguiente:

Alpine

apk add alpine-sdk linux-headers cmake lsb-release-minimal

CentOS

sudo yum groupinstall -y 'Development Tools'
sudo yum install -y pkgconfig redhat-lsb-core

Debian

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Fedora

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

Fedora

sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core

OpenSUSE

sudo zypper refresh
sudo zypper install -y git gcc11 gcc11-c++ lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

Ubuntu

sudo apt update
sudo apt install -y build-essential cmake lsb-release

SWIG

Para instalar SWIG, abre una ventana de terminal e ingresa lo siguiente:

Alpine

apk add swig

CentOS

sudo yum install -y swig

Debian

sudo apt install -y swig

Fedora

sudo dnf install -y swig

Fedora

sudo dnf install -y swig

OpenSUSE

sudo zypper install -y swig

Ubuntu

sudo apt install -y swig

Ubuntu

sudo apt install -y swig

Ubuntu

sudo apt install -y swig

Java JDK >= 8.0

Para instalar la versión 8.0 o una posterior del JDK de Java, abre una ventana de terminal e ingresa lo siguiente:

Alpine

sudo apk add openjdk8
export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk

CentOS

sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

Debian

sudo apt install -y default-jdk
export JAVA_HOME=/usr/lib/jvm/default-java

Fedora

sudo dnf install -y java-openjdk java-openjdk-devel

Fedora

sudo dnf install -y java-openjdk java-openjdk-devel

OpenSUSE

sudo zypper install -y java-1_8_0-openjdk java-1_8_0-openjdk-devel

Ubuntu

sudo apt install -y default-jdk

Ubuntu

sudo apt install -y default-jdk

Ubuntu

sudo apt install -y default-jdk

Maven >= 3.3

Para instalar Maven 3.3 o una versión posterior, abre una ventana de terminal y escribe lo siguiente:

Alpine

sudo apk add maven

CentOS

sudo yum install -y maven

Debian

sudo apt install -y maven

Fedora

sudo dnf install -y maven

Fedora

sudo dnf install -y maven

OpenSUSE

sudo zypper install -y maven

Ubuntu

sudo apt install -y maven

Ubuntu

sudo apt install -y maven

Ubuntu

sudo apt install -y maven

Puedes probar que Maven esté instalado correctamente y encontrar Java con el siguiente comando:

mvn -v

Descarga el código fuente

En GitHub hay dos ramas distintas del código fuente de las herramientas del OR: stable y main.

La rama stable se probó de manera exhaustiva y debería funcionar sin problemas en todas las plataformas compatibles.
La rama main es donde se aplicaron las actualizaciones y mejoras más recientes. Es más actual, pero menos estable.

Descarga el código fuente estable

Puedes obtener el código fuente estable para las herramientas del operador OR de cualquiera de las siguientes maneras:

  • Ingresa lo siguiente para clonar la rama stable:

    git clone https://github.com/google/or-tools
    
  • Para descargar la versión más reciente en un archivo comprimido, haz clic en el botón Clone or download en GitHub. imagen del botón para clonar o descargar

Descarga el código fuente principal

Para recuperar el código fuente de la rama main, ingresa lo siguiente:

git clone -b main https://github.com/google/or-tools

Descargar versiones anteriores

Puedes obtener el código fuente de versiones anteriores de cualquiera de las siguientes maneras:

  • Descarga una versión anterior de la página de versiones de GitHub.
  • Si ya creaste un repositorio local (de git clone), puedes consultar una versión específica con una etiqueta de Git. Por ejemplo, para trabajar con la versión v9.9 en lugar de la rama main, ingresa los siguientes comandos en tu repositorio local:

    git fetch --all --tags --prune
    git checkout tags/v9.9 -v v9.9
    

Configura la compilación

Antes de compilar las herramientas del operador OR, deberás configurar el generador del sistema de compilación de CMake.

Abre una terminal y navega al directorio en el que extrajiste los archivos. Luego, ingresa lo siguiente:

cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_JAVA=ON

Consulta la documentación de CMake para obtener más detalles.

Usando SCIP

A partir de la versión 7.8, SCIP ahora está integrado, por lo que no tendrás que instalarlo manualmente.

Usa Gurobi

Gurobi ahora está preintegrado. Cuando sea necesario, durante el tiempo de ejecución, las herramientas del operador OR buscarán la biblioteca compartida de Gurobi en la ruta de instalación predeterminada de los instaladores de Gurobi en MAC OS X y Windows, o mediante la variable de entorno GUROBI_HOME.

Usa un solucionador de MIP de terceros opcional

También puedes usar las herramientas del OR con cualquiera de los siguientes compiladores de MIP de terceros opcionales cuya compatibilidad está inhabilitada de forma predeterminada:

Consulta esta documentación para obtener más detalles.

Compila el código fuente

Para compilar el código fuente, abre una terminal y navega al directorio en el que extrajiste los archivos. Luego, ingresa el siguiente comando para compilar las herramientas del operador OR:

cmake --build build --config Release --target all -j -v

Consulta la documentación de CMake para obtener más detalles.

Prueba el código fuente

Para verificar que todo funcione correctamente, ingresa lo siguiente:

cmake --build build --config Release --target test -v

Esto ejecuta ejemplos de las herramientas del operador OR. Si todos los ejemplos se ejecutan con éxito, estás listo para comenzar a usar las herramientas de OR.

Limpia los archivos de compilación

Si necesitas volver a instalar OR-Tools, el comando hará lo siguiente:

rm -r build

quitará todas las dependencias compiladas. Esto puede ser útil para restablecer el estado a un estado limpio.

Luego, vuelve a ingresar los comandos:

cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_JAVA=ON

cmake --build build --config Release --target all -j -v

Cómo instalar las herramientas OR en tu sistema operativo

Puedes instalar OR-Tools para Java en tu sistema operativo ingresando lo siguiente:

cmake --build build --config Release --target install -v