在 Linux 上从源代码 OR-Tools .Net 构建

简介

本指南介绍如何从源 OR 工具进行构建,支持 .Net。

除非您打算修改源代码或使用第三方求解器,否则 OR 工具,我们建议使用软件包安装

虽然这些说明可能也适用于其他 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-Tools 的前提条件。

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

如需安装 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/zh-CN/dotnet/core/install/linux-centos#centos-7
<ph type="x-smartling-placeholder">
</ph>

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/zh-CN/dotnet/core/install/linux-debian

Fedora

sudo dnf install -y dotnet-sdk-6.0
参考:https://learn.microsoft.com/zh-CN/dotnet/core/install/linux-fedora
<ph type="x-smartling-placeholder">
</ph>

Fedora

sudo dnf install -y dotnet-sdk-6.0
参考:https://learn.microsoft.com/zh-CN/dotnet/core/install/linux-fedora
<ph type="x-smartling-placeholder">
</ph>

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/zh-CN/dotnet/core/install/linux-opensuse
<ph type="x-smartling-placeholder">
</ph>

Ubuntu

sudo apt install -y dotnet-sdk-6.0
参考:https://learn.microsoft.com/zh-CN/dotnet/core/install/linux-ubuntu
<ph type="x-smartling-placeholder">
</ph>

Ubuntu

sudo apt install -y dotnet-sdk-6.0
参考:https://learn.microsoft.com/zh-CN/dotnet/core/install/linux-ubuntu
<ph type="x-smartling-placeholder">
</ph>

Ubuntu

sudo apt install -y dotnet-sdk-6.0
参考:https://learn.microsoft.com/zh-CN/dotnet/core/install/linux-ubuntu

下载源代码

OR-Tools 源代码有两个不同的分支, GitHubstablemain

stable 分支已经过全面测试,应该能够 支持的平台
main 分支用于存放 已进行了多项改进;虽然版本较新,但稳定性较差。

下载稳定的源代码

您可以通过以下任一方式获取 OR-Tools 的稳定源代码:

  • 输入以下命令来克隆 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 代码。 例如,要使用 v9.10 版本,而不是 main 分支时,在本地代码库中输入以下命令:

    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 会在运行时搜索 Gurobi 安装程序的默认安装路径中的 Gurobi 共享库 或在 MAC OS X 和 Windows 上运行,或者使用 GUROBI_HOME 环境变量。

使用可选的第三方 MIP 求解器

您还可以将 OR-Tools 与以下任一可选的第三方 MIP 搭配使用 支持默认停用的求解器:

请查看 此文档 了解详情。

构建源代码

如需构建源代码,请打开终端并导航到 文件。然后输入以下命令来编译 OR-Tools:

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

查看 CMake 文档 了解详情。

测试源代码

您可以输入以下命令,检查是否一切正常:

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

这会运行 OR-Tools 示例。如果所有示例都运行 您就可以 开始使用 OR 工具

清理构建文件

如果您需要重新安装 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-Tools,方法是输入以下命令:

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