Cómo compilar desde el origen OR-Tools .NET en Linux

Introducción

Esta guía explica cómo compilar a partir de herramientas OR de origen, con compatibilidad para .NET en Linux.

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

Aunque estas instrucciones también podrían funcionar en otras variantes de Linux, solo los probaron en máquinas que cumplen con los siguientes requisitos:

  • Alpine Edge 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 24.04 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

Las siguientes secciones describen los requisitos previos para instalar OR-Tools.

Herramientas de C++

Para instalar 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:

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

SDK de .NET Core >= 3.1

A continuación, instala la versión 3 .1 o una posterior del SDK de.NET Core. Para ello, sigue estos pasos: abre una ventana de terminal y escribe lo siguiente:

Alpine

apk add dotnet6-sdk
    

ref: https://learn.microsoft.com/en-us/dotnet/core/install/linux-alpine

CentOS

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install -y dotnet-sdk-6.0
referencia: https://learn.microsoft.com/es-mx/dotnet/core/install/linux-centos#centos-7

Debian

Antes de instalar .NET, ejecuta los siguientes comandos para agregar el servidor la clave de firma del paquete a tu lista de claves de confianza y agrégala en un repositorio de confianza.

wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt update
sudo apt install -y dotnet-sdk-6.0
referencia: https://learn.microsoft.com/es-mx/dotnet/core/install/linux-debian

Fedora

sudo dnf install -y dotnet-sdk-6.0
referencia: https://learn.microsoft.com/es-mx/dotnet/core/install/linux-fedora

Fedora

sudo dnf install -y dotnet-sdk-6.0
referencia: https://learn.microsoft.com/es-mx/dotnet/core/install/linux-fedora

OpenSUSE

Antes de instalar .NET, ejecuta los siguientes comandos para agregar el servidor la clave de firma del paquete a tu lista de claves de confianza y agrégala en un repositorio de confianza.

sudo zypper install libicu
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
wget https://packages.microsoft.com/config/opensuse/15/prod.repo
sudo mv prod.repo /etc/zypp/repos.d/microsoft-prod.repo
sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo

Luego, puedes instalar el SDK de .NET con el siguiente comando:

sudo zypper install -y dotnet-sdk-6.0
referencia: https://learn.microsoft.com/es-mx/dotnet/core/install/linux-opensuse

Ubuntu

sudo apt install -y dotnet-sdk-6.0
referencia: https://learn.microsoft.com/es-mx/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
referencia: https://learn.microsoft.com/es-mx/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
referencia: https://learn.microsoft.com/es-mx/dotnet/core/install/linux-ubuntu

Descargue el código fuente

Existen dos ramas distintas del código fuente OR-Tools en GitHub: stable y main

La rama stable se probó minuciosamente y debería funcionar sin problemas en todos los plataformas compatibles.
En la rama main, se encuentran las últimas actualizaciones y de los cambios que se implementaron; sea más actual, pero menos estable.

Descarga el código fuente estable

Puedes obtener el código fuente estable para OR-Tools de cualquiera de las siguientes maneras:

  • Para clonar la rama stable, ingresa lo siguiente:

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

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

Descarga versiones anteriores

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

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

    git fetch --all --tags --prune
    git checkout tags/v9.10 -b v9.10
    

Configura la compilación

Antes de compilar las herramientas OR, tendrás que configurar el sistema de compilación de CMake generador.

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_DOTNET=ON

Consulta el Documentación de CMake para conocer los detalles.

Usando SCIP

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

Cómo usar Gurobi

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

Cómo usar un solucionador de MIP externo opcional

También puedes usar las herramientas OR con cualquiera de los siguientes MIP externos opcionales solucionadores cuyo soporte está inhabilitado de forma predeterminada:

Consulta esta documentación para conocer los detalles.

Compila el código fuente

Para compilar el código fuente, abre una terminal y navega hasta el directorio extrajiste los archivos. Luego, ingresa el siguiente comando para compilar OR-Tools:

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

Consulta el Documentación de CMake para conocer los detalles.

Prueba el código fuente

Para verificar que todo se ejecute correctamente, ingresa lo siguiente:

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

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

Cómo limpiar los archivos de compilación

Si necesitas volver a instalar OR-Tools, haz lo siguiente:

rm -r build

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

Luego, vuelve a ingresar los comandos:

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

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

Cómo instalar las herramientas OR en tu sistema operativo

Puedes instalar OR-Tools for .NET en tu sistema operativo ingresando:

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