Xây dựng từ nguồn OR-Tools .Net trên Linux

Giới thiệu

Hướng dẫn này giải thích cách tạo từ nguồn OR-Tools có hỗ trợ .Net trên Linux.

Trừ phi bạn định sửa đổi mã nguồn hoặc sử dụng trình giải toán của bên thứ ba bằng công cụ OR-Tools, bạn nên cài đặt gói.

Mặc dù những hướng dẫn này cũng có thể hoạt động trên các biến thể Linux khác, nhưng chúng tôi chỉ kiểm thử trên các máy đáp ứng các yêu cầu sau:

  • Alpine Edge 64 bit (x86_64)
  • Centos 7 LTS 64 bit (x86_64)
  • Debian SID 64 bit (x86_64)
  • Debian 11 (bullseye) 64 bit (x86_64)
  • Mũ phớt 38 64 bit (x86_64)
  • Mũ phớt 37 64 bit (x86_64)
  • OpenSuse Leap 64 bit (x86_64)
  • Ubuntu 23.10 64 bit (x86_64)
  • Ubuntu 22.04 LTS 64 bit (x86_64)
  • Ubuntu 20.04 LTS 64 bit (x86_64)

Điều kiện tiên quyết

Các phần sau đây mô tả các điều kiện tiên quyết để cài đặt Công cụ OR.

Công cụ C++

Để cài đặt các công cụ C++, hãy mở cửa sổ dòng lệnh rồi nhập:

Dãy núi

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

Mũ phớt

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

Mũ phớt

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

Để cài đặt SWIG, hãy mở cửa sổ dòng lệnh rồi nhập:

Dãy núi

apk add swig

Centos

sudo yum install -y swig

Debian

sudo apt install -y swig

Mũ phớt

sudo dnf install -y swig

Mũ phớt

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 .Net Core >= 3.1

Tiếp theo, hãy cài đặt SDK .Net Core phiên bản 3.1 trở lên. Để thực hiện việc này, hãy mở một cửa sổ dòng lệnh rồi nhập:

Dãy núi

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
tham khảo: https://learn.microsoft.com/vi-vn/dotnet/core/install/linux-centos#centos-7

Debian

Trước khi cài đặt .NET, hãy chạy các lệnh sau để thêm khoá ký gói Microsoft vào danh sách khoá đáng tin cậy và thêm kho lưu trữ gói.

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
tham khảo: https://learn.microsoft.com/vi-vn/dotnet/core/install/linux-debian

Mũ phớt

sudo dnf install -y dotnet-sdk-6.0
tham khảo: https://learn.microsoft.com/vi-vn/dotnet/core/install/linux-feedora

Mũ phớt

sudo dnf install -y dotnet-sdk-6.0
tham khảo: https://learn.microsoft.com/vi-vn/dotnet/core/install/linux-feedora

OpenSUSE

Trước khi cài đặt .NET, hãy chạy các lệnh sau để thêm khoá ký gói Microsoft vào danh sách khoá đáng tin cậy và thêm kho lưu trữ gói.

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

Sau đó, bạn có thể cài đặt SDK .Net bằng lệnh sau:

sudo zypper install -y dotnet-sdk-6.0
tham khảo: https://learn.microsoft.com/vi-vn/dotnet/core/install/linux-opensuse

Ubuntu

sudo apt install -y dotnet-sdk-6.0
tham khảo: https://learn.microsoft.com/vi-vn/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
tham khảo: https://learn.microsoft.com/vi-vn/dotnet/core/install/linux-ubuntu

Ubuntu

sudo apt install -y dotnet-sdk-6.0
tham khảo: https://learn.microsoft.com/vi-vn/dotnet/core/install/linux-ubuntu

Tải mã nguồn xuống

Có hai nhánh riêng biệt của mã nguồn OR-Tools trên GitHub: stablemain.

Nhánh stable đã được kiểm thử kỹ lưỡng và sẽ hoạt động hoàn hảo trên tất cả các nền tảng được hỗ trợ.
Nhánh main là nơi đã áp dụng các bản cập nhật và cải tiến mới nhất; đây là nhánh mới hơn nhưng kém ổn định hơn.

Tải mã nguồn ổn định xuống

Bạn có thể lấy mã nguồn ổn định cho OR-Tools theo một trong các cách sau:

  • Sao chép nhánh stable bằng cách nhập:

    git clone https://github.com/google/or-tools
    
  • Tải bản phát hành mới nhất xuống dưới dạng tệp nén bằng cách nhấp vào nút Clone or download trong GitHub. hình ảnh bản sao hoặc nút tải xuống

Tải mã nguồn chính xuống

Để truy xuất mã nguồn từ nhánh main, hãy nhập:

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

Tải bản phát hành trước xuống

Bạn có thể lấy mã nguồn cho các bản phát hành trước theo một trong những cách sau:

  • Tải một bản phát hành trước đó xuống qua trang phát hành GitHub.
  • Giả sử bạn đã tạo một kho lưu trữ cục bộ (của git clone), bạn có thể xem một bản phát hành cụ thể bằng cách sử dụng thẻ Git. Ví dụ: để hoạt động với bản phát hành v9.9 thay vì nhánh main, hãy nhập các lệnh sau vào kho lưu trữ cục bộ:

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

Định cấu hình bản dựng

Trước khi tạo OR-Tools, bạn cần định cấu hình trình tạo hệ thống xây dựng CMake.

Mở cửa sổ dòng lệnh rồi chuyển đến thư mục bạn đã giải nén tệp. Sau đó nhập:

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

Hãy xem tài liệu về CMake để biết thông tin chi tiết.

Sử dụng SCIP

Kể từ phiên bản 7.8, SCIP hiện đã được tích hợp nên bạn sẽ không phải cài đặt theo cách thủ công.

Sử dụng Gurobi

Gurobi hiện đã được tích hợp sẵn. Khi cần, trong thời gian chạy, OR-Tools sẽ tìm kiếm thư viện chia sẻ Gurobi trong đường dẫn cài đặt mặc định của trình cài đặt Gurobi trên MAC OS X và Windows hoặc bằng cách sử dụng biến môi trường GUROBI_HOME.

Sử dụng trình giải quyết MIP (không bắt buộc) của bên thứ ba

Bạn cũng có thể sử dụng Công cụ OR với bất kỳ trình phân giải MIP nào sau đây (không bắt buộc) mà tính năng hỗ trợ bị tắt theo mặc định:

Vui lòng xem tài liệu này để biết thông tin chi tiết.

Tạo mã nguồn

Để tạo mã nguồn, hãy mở một cửa sổ dòng lệnh rồi chuyển đến thư mục mà bạn đã trích xuất các tệp. Sau đó, nhập lệnh sau để biên dịch OR-Tools:

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

Hãy xem tài liệu về CMake để biết thông tin chi tiết.

Kiểm thử mã nguồn

Bạn có thể kiểm tra xem mọi thứ có đang chạy đúng cách không bằng cách nhập:

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

Thao tác này sẽ chạy các ví dụ cho công cụ OR-Tools. Nếu tất cả ví dụ đều chạy thành công thì bạn đã sẵn sàng để bắt đầu sử dụng OR-Tools.

Dọn dẹp tệp bản dựng

Nếu bạn cần cài đặt lại OR-Tools, lệnh:

rm -r build

sẽ xoá mọi phần phụ thuộc đã biên dịch. Việc này có thể hữu ích cho việc đặt lại về trạng thái sạch.

Sau đó nhập lại các lệnh:

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

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

Cài đặt OR-Tools trên hệ điều hành của bạn

Bạn có thể cài đặt OR-Tools cho .Net trên hệ điều hành của mình bằng cách nhập:

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