Kompilowanie ze źródłowego pliku OR-Tools .Net w systemie Linux

Wstęp

Ten przewodnik wyjaśnia, jak tworzyć kompilacje z narzędzi źródłowych LUB-Tools z obsługą .Net w systemie Linux.

Jeśli nie chcesz modyfikować kodu źródłowego ani używać rozwiązań innej firmy za pomocą narzędzi LUB, zalecamy instalację pakietu.

Chociaż te instrukcje mogą też działać w innych wersjach systemu Linux, przetestowaliśmy je tylko na komputerach spełniających te wymagania:

  • Alpine Edge w wersji 64-bitowej (x86_64)
  • Centos 7 LTS 64-bitowy (x86_64)
  • Debian SID 64-bitowy (x86_64)
  • Debian 11 (bullseye) 64-bitowy (x86_64)
  • Fedora 38 64-bitowa (x86_64)
  • Fedora 37 64-bitowa (x86_64)
  • OpenSuse Leap 64-bit (x86_64)
  • Ubuntu 23.10 w wersji 64-bitowej (x86_64)
  • Ubuntu 22.04 LTS 64-bitowy (x86_64)
  • Ubuntu 20.04 LTS 64-bitowy (x86_64)

Wymagania wstępne

W kolejnych sekcjach opisano wymagania wstępne instalacji narzędzi LUB.

Narzędzia C++

Aby zainstalować narzędzia C++, otwórz okno terminala i wpisz:

Alpine

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

Cento

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

Aby zainstalować SWIG, otwórz okno terminala i wpisz:

Alpine

apk add swig

Cento

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

.Net Core SDK >= 3,1

Następnie zainstaluj pakiet .Net Core SDK w wersji 3.1 lub nowszej. Aby to zrobić, otwórz okno terminala i wpisz:

Alpine

apk add dotnet6-sdk
    

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

Cento

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

Debian

Zanim zainstalujesz .NET, uruchom poniższe polecenia, aby dodać klucz podpisywania pakietu Microsoft do listy zaufanych kluczy i dodać repozytorium pakietów.

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
ref: https://learn.microsoft.com/pl-pl/dotnet/core/install/linux-debian

Fedora

sudo dnf install -y dotnet-sdk-6.0
ref.: https://learn.microsoft.com/pl-pl/dotnet/core/install/linux-fedora

Fedora

sudo dnf install -y dotnet-sdk-6.0
ref.: https://learn.microsoft.com/pl-pl/dotnet/core/install/linux-fedora

OpenSUSE

Zanim zainstalujesz .NET, uruchom poniższe polecenia, aby dodać klucz podpisywania pakietu Microsoft do listy zaufanych kluczy i dodać repozytorium pakietów.

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

Następnie możesz zainstalować pakiet .Net SDK za pomocą tego polecenia:

sudo zypper install -y dotnet-sdk-6.0
ref.: https://learn.microsoft.com/pl-pl/dotnet/core/install/linux-opensuse

Ubuntu

sudo apt install -y dotnet-sdk-6.0
ref: https://learn.microsoft.com/pl-pl/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
ref: https://learn.microsoft.com/pl-pl/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
ref.: https://learn.microsoft.com/pl-pl/dotnet/core/install/linux-ubuntu

Pobieranie kodu źródłowego

W GitHub istnieją 2 różne gałęzie kodu źródłowego OR-Tools: stable i main.

Gałąź stable została dokładnie przetestowana i powinna działać prawidłowo na wszystkich obsługiwanych platformach.
Gałąź main to miejsce, w którym wprowadzono najnowsze aktualizacje i ulepszenia. Jest bardziej aktualna, ale mniej stabilna.

Pobieranie stabilnego kodu źródłowego

Stabilny kod źródłowy dla OR-Tools możesz uzyskać na jeden z tych sposobów:

  • Skopiuj gałąź stable, wpisując:

    git clone https://github.com/google/or-tools
    
  • Pobierz najnowszą wersję w skompresowanym pliku, klikając przycisk Clone or download na GitHub.obraz przycisku klonowania lub pobierania

Pobierz główny kod źródłowy

Aby pobrać kod źródłowy z gałęzi main, wpisz:

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

Pobieranie poprzednich wersji

Kod źródłowy poprzednich wersji możesz pobrać na następujące sposoby:

  • Pobierz poprzednią wersję ze strony wersji na GitHubie.
  • Zakładając, że masz już utworzone repozytorium lokalne (do git clone), możesz sprawdzić konkretną wersję za pomocą tagu Git. Aby na przykład pracować z wersją 9.9 zamiast gałęzi main, wpisz w lokalnym repozytorium te polecenia:

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

Konfigurowanie kompilacji

Przed utworzeniem narzędzi LUB musisz skonfigurować generator systemu kompilacji CMake.

Otwórz terminal i przejdź do katalogu, z którego zostały wyodrębnione pliki. Potem wpisz:

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

Więcej informacji znajdziesz w dokumentacji CMake.

Korzystanie z SCIP

Od wersji 7.8 rozwiązanie SCIP jest teraz zintegrowane, więc nie musisz instalować go ręcznie.

Korzystanie z Gurobi

Usługa Gurobi jest teraz wstępnie zintegrowana. W razie potrzeby w czasie działania narzędzi OR-Tools wyszuka zasoby udostępniane Gurobi w domyślnej ścieżce instalacji instalatorów Gurobi w systemie MAC OS X i Windows lub za pomocą zmiennej środowiskowej GUROBI_HOME.

Korzystanie z opcjonalnego rozwiązania MIP innej firmy

Możesz też używać LUB z dowolnym z tych opcjonalnych rozwiązań MIP innych firm, których obsługa domyślnie jest wyłączona:

Więcej informacji znajdziesz w tej dokumentacji.

Tworzenie kodu źródłowego

Aby utworzyć kod źródłowy, otwórz terminal i przejdź do katalogu, z którego zostały wyodrębnione pliki. Następnie wpisz to polecenie, aby skompilować OR-Tools:

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

Więcej informacji znajdziesz w dokumentacji CMake.

Testowanie kodu źródłowego

Aby sprawdzić, czy wszystko działa poprawnie, wpisz:

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

Uruchamiają się przykłady z operatora LUB. Jeśli wszystkie przykłady się uruchomią, możesz zacząć korzystać z OR-Tools.

Czyszczenie plików kompilacji

Jeśli musisz ponownie zainstalować OR-Tools, polecenie:

rm -r build

usuwa wszystkie skompilowane zależności. Może to być przydatne podczas przywracania ustawień fabrycznych.

Następnie ponownie wpisz polecenia:

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

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

Instalowanie narzędzi OR-Tools w swoim systemie operacyjnym

Możesz zainstalować OR-Tools for .Net w swoim systemie operacyjnym, wpisując:

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