Linux의 소스 OR-Tools .Net에서 빌드

소개

이 가이드에서는 Linux에서 .Net을 지원하여 소스 OR-도구에서 빌드하는 방법을 설명합니다.

소스 코드를 수정하거나 OR-Tools와 함께 서드 파티 솔버를 사용할 계획이 아니라면 패키지 설치를 사용하는 것이 좋습니다.

이 안내는 다른 Linux 변형에도 적용될 수 있지만 다음 요구사항을 충족하는 머신에서만 테스트했습니다.

  • Alpine Edge 64비트 (x86_64)
  • Centos 7 LTS 64비트 (x86_64)
  • Debian SID 64비트 (x86_64)
  • Debian 11 (bullseye) 64비트 (x86_64)
  • Fedora 38 64비트 (x86_64)
  • Fedora 37 64비트 (x86_64)
  • OpenSuse Leap 64비트 (x86_64)
  • Ubuntu 24.04 64비트 (x86_64)
  • Ubuntu 22.04 LTS 64비트 (x86_64)
  • Ubuntu 20.04 LTS 64비트 (x86_64)

기본 요건

다음 섹션에서는 OR-도구를 설치하기 위한 기본 요건을 설명합니다.

C++ 도구

C++ 도구를 설치하려면 터미널 창을 열고 다음을 입력합니다.

Alpine

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

센토스

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를 설치하려면 터미널 창을 열고 다음을 입력합니다.

Alpine

apk add swig

센토스

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 이상

그런 다음 .Net Core SDK 버전 3.1 이상을 설치합니다. 이렇게 하려면 터미널 창을 열고 다음을 입력합니다.

Alpine

apk add dotnet6-sdk
    

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

센토스

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

Debian

.NET을 설치하기 전에 다음 명령어를 실행하여 Microsoft 패키지 서명 키를 신뢰할 수 있는 키 목록에 추가하고 패키지 저장소를 추가합니다.

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
참조: https://learn.microsoft.com/ko-kr/dotnet/core/install/linux-debian

Fedora

sudo dnf install -y dotnet-sdk-6.0
참조: https://learn.microsoft.com/ko-kr/dotnet/core/install/linux-fedora

Fedora

sudo dnf install -y dotnet-sdk-6.0
참조: https://learn.microsoft.com/ko-kr/dotnet/core/install/linux-fedora

OpenSUSE

.NET을 설치하기 전에 다음 명령어를 실행하여 Microsoft 패키지 서명 키를 신뢰할 수 있는 키 목록에 추가하고 패키지 저장소를 추가합니다.

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

그러면 다음 명령어를 사용하여 .Net SDK를 설치할 수 있습니다.

sudo zypper install -y dotnet-sdk-6.0
참조: https://learn.microsoft.com/ko-kr/dotnet/core/install/linux-opensuse

Ubuntu

sudo apt install -y dotnet-sdk-6.0
참조: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
참조: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
참조: https://learn.microsoft.com/ko-kr/dotnet/core/install/linux-ubuntu

소스 코드 다운로드하기

GitHub의 OR-도구 소스 코드에는 stablemain라는 서로 다른 두 가지 브랜치가 있습니다.

stable 브랜치는 철저한 테스트를 거쳤으며 지원되는 모든 플랫폼에서 원활하게 작동합니다.
main 브랜치는 최신 업데이트 및 개선사항이 적용된 위치입니다. 더 최신 상태이지만 덜 안정적입니다.

안정적인 소스 코드 다운로드

다음 방법 중 하나를 사용하여 OR-도구의 안정적인 소스 코드를 가져올 수 있습니다.

  • 다음을 입력하여 stable 브랜치를 클론합니다.

    git clone https://github.com/google/or-tools
    
  • GitHub에서 Clone or download 버튼을 클릭하여 최신 출시 버전을 압축 파일로 다운로드합니다. 클론 또는 다운로드 버튼 이미지

기본 소스 코드 다운로드

main 브랜치에서 소스 코드를 검색하려면 다음을 입력합니다.

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

이전 출시 버전 다운로드

다음 방법 중 하나를 사용하여 이전 버전의 소스 코드를 가져올 수 있습니다.

  • GitHub 출시 페이지에서 이전 출시 버전을 다운로드합니다.
  • (git clone로) 로컬 저장소를 이미 만들었다고 가정하면 Git 태그를 사용하여 특정 출시 버전을 체크아웃할 수 있습니다. 예를 들어 main 브랜치 대신 v9.10 출시로 작업하려면 로컬 저장소에 다음 명령어를 입력합니다.

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

빌드 구성

OR-Tools를 빌드하기 전에 CMake 빌드 시스템 생성기를 구성해야 합니다.

터미널을 열고 파일의 압축을 푼 디렉터리로 이동합니다. 그런 다음 아래 내용을 입력합니다.

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

자세한 내용은 CMake 문서를 참고하세요.

SCIP 사용

v7.8부터 SCIP가 통합되었으므로 수동으로 설치할 필요가 없습니다.

Gurobi 사용

이제 Gurobi가 사전 통합되었습니다. 필요한 경우 런타임 시 OR-Tools는 MAC OS X 및 Windows에 있는 Gurobi 설치 프로그램의 기본 설치 경로에서 또는 GUROBI_HOME 환경 변수를 사용하여 Gurobi 공유 라이브러리를 검색합니다.

서드 파티 MIP 솔버(선택사항) 사용

지원이 기본적으로 사용 중지된 다음의 서드 파티 MIP 솔버(선택사항)와 함께 OR-도구를 사용할 수도 있습니다.

자세한 내용은 이 문서를 참고하세요.

소스 코드 빌드

소스 코드를 빌드하려면 터미널을 열고 파일의 압축을 푼 디렉터리로 이동합니다. 그런 다음 다음 명령어를 입력하여 OR-Tools를 컴파일합니다.

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

자세한 내용은 CMake 문서를 참고하세요.

소스 코드 테스트

다음을 입력하면 모든 것이 올바르게 실행되고 있는지 확인할 수 있습니다.

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

OR 도구 예시를 실행합니다. 모든 예시가 성공적으로 실행되면 OR-Tools를 시작할 수 있습니다.

빌드 파일 정리

OR-Tools를 다시 설치해야 하는 경우 다음 명령어를 실행합니다.

rm -r build

컴파일된 종속 항목을 모두 삭제합니다. 이는 정리 상태로 재설정하는 데 유용할 수 있습니다.

그런 다음 명령어를 다시 입력합니다.

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

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

운영체제에 OR 도구 설치

운영체제에 다음을 입력하여 .Net용 OR-도구를 설치할 수 있습니다.

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