简介
本指南介绍了如何在 Linux 上通过源代码 OR 工具进行构建,并支持 .Net。
除非您打算修改源代码或将第三方求解器与 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 23.10 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
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,请打开终端窗口并输入:
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
.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
Centos
参考:https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-centos#centos-7sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install -y dotnet-sdk-6.0
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
参考:https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-debiansudo apt update
sudo apt install -y dotnet-sdk-6.0
Fedora
sudo dnf install -y dotnet-sdk-6.0
参考:https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-fedora
Fedora
sudo dnf install -y dotnet-sdk-6.0
参考:https://learn.microsoft.com/zh-cn/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/zh-cn/dotnet/core/install/linux-opensuse
Ubuntu
sudo apt install -y dotnet-sdk-6.0
参考:https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu
Ubuntu
sudo apt install -y dotnet-sdk-6.0
参考:https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu
Ubuntu
sudo apt install -y dotnet-sdk-6.0
参考:https://learn.microsoft.com/zh-CN/dotnet/core/install/linux-ubuntu
下载源代码
GitHub 上有两个不同的 OR-Tools 源代码分支:stable
和 main
。
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.9 版本而不是main
分支,请在本地代码库中输入以下命令:git fetch --all --tags --prune
git checkout tags/v9.9 -v v9.9
配置构建
在构建 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 共享库,或者使用 GUROBI_HOME
环境变量搜索 Gurobi 共享库。
使用可选的第三方 MIP 求解器
您还可以将 OR-Tools 与以下任一可选的第三方 MIP 求解器(默认情况下其支持处于停用状态)搭配使用:
- 每位潜在客户费用 (CPLEX)
- GLPK(仅限 Linux 和 MacOS)
- XPRESS 求解器
如需了解详情,请参阅此文档。
构建源代码
如需构建源代码,请打开终端并转到解压缩文件的目录。然后输入以下命令来编译 OR-Tools:
cmake --build build --config Release --target all -j -v
如需了解详情,请参阅 CMake 文档。
测试源代码
您可以输入以下命令来检查一切是否运行正常:
cmake --build build --config Release --target test -v
这将运行 OR-Tools 的示例。如果所有示例都成功运行,您就可以开始使用 OR 工具了。
清理 build 文件
如果您需要重新安装 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-Tools
您可以在自己的操作系统中通过输入以下命令为 .Net 安装 OR-Tools:
cmake --build build --config Release --target install -v