Introduction
This guide explains how to install OR-Tools from source, with support for Python, on Linux. Unless you plan to modify the source code or use a third-party solver with OR-Tools, we recommend the binary installation.
Although these instructions might also work on other Linux variants, we have only tested them on machines meeting the following requirements:
- Ubuntu 20.10/20.04 LTS/18.04 LTS 64-bit (x86_64)
- Alpine Edge 64-bit (x86_64)
- Debian 10.2 (buster) 64-bit (x86_64)
- Centos 8 64-bit (x86_64)
Prerequisites
The following sections describe the prerequisites for installing OR-Tools from source.
C++ tools
To install C++ tools, open a terminal window and enter:
Alpine Edge
apk add git build-base linux-headers cmake xfce4-dev-tools
Centos 8
yum groupinstall 'Development Tools'
yum -y install pkgconfig
Debian 10
sudo apt-get -y install git wget pkg-config build-essential cmake autoconf libtool zlib1g-dev lsb-release
Ubuntu 20.10
sudo apt-get -y install git wget pkg-config build-essential cmake autoconf libtool zlib1g-dev lsb-release
Ubuntu 20.04 LTS
sudo apt-get -y install git wget pkg-config build-essential cmake autoconf libtool zlib1g-dev lsb-release
Ubuntu 18.04 LTS
sudo apt-get -y install git wget pkg-config build-essential cmake autoconf libtool zlib1g-dev lsb-release
SWIG
To install SWIG, open a terminal window and enter:
Alpine Edge
sudo apk add swig
Centos 8
sudo dnf install swig
Debian 10
sudo apt install swig
Ubuntu 20.10
sudo apt install swig
Ubuntu 20.04 LTS
sudo apt install swig
Ubuntu 18.04 LTS
sudo apt install swig
Python
You must have Python 3.6+ installed.
To install Python 3.6+, open a terminal window and enter:
Alpine Edge
sudo apk add python3-dev py3-pip py3-wheel
Centos 8
sudo dnf install python36-devel python3-wheel
Debian 10
sudo apt-get install python3-dev python3-pip python3-venv python3-six
Ubuntu 20.10
sudo apt-get install python3-dev python3-pip python3-venv python3-six
Ubuntu 20.04 LTS
sudo apt-get install python3-dev python3-pip python3-venv python3-six
Ubuntu 18.04 LTS
sudo apt-get install python3-dev python3-pip python3-venv python3-six
You can check your Python 3 installation using:
python3 --version
python3 -c "import platform; print(platform.architecture()[0])"
python3 -m pip --version
Download the source code
There are two distinct branches of the OR-Tools source code on GitHub: stable and master. The stable branch has been thoroughly tested and should work flawlessly on all supported platforms. The master branch is where the latest updates and improvements have been applied; it's more current, but less stable.
Download the stable source code
You can get the stable source code for OR-Tools in either of the following ways:
- Clone the stable branch by entering
git clone https://github.com/google/or-tools
- Download the latest release in a compressed file, by
clicking the Clone or download button
in GitHub.
Download the master source code
To retrieve the source code from the master branch, enter
git clone -b master https://github.com/google/or-tools
Download previous releases
You can get the source code for previous releases in either of the following ways:
- Download a previous release from the GitHub release page.
- Assuming you have already created a local repository (by
git clone
), you can check out a specific release using a Git tag. For example, to work with the v8.1 release instead of the master branch, enter the following commands in your local repo:git fetch --all --tags --prune
git checkout tags/v7.5 -b v7.5
Build third parties
Before building OR-Tools, you'll need to build the required third party software.
Open a terminal and navigate to the directory where you extracted the files. Then enter:
make third_party
Using SCIP
Since v7.8, SCIP is now integrated so you won't have to install it manually.
Using Gurobi
Gurobi is now pre-integrated. When needed, at runtime, OR-Tools will search for the Gurobi shared
library in the default install path of the Gurobi installers on MAC OS X and Windows, or by using
the GUROBI_HOME
environment variable.
Using an optional third-party MIP solver
You can also use OR-Tools with any of the following optional third-party MIP solvers whose support is disabled by default:
- CPLEX
- GLPK (Linux and MacOS only)
- Xpress Solver
To configure OR-Tools to use one of these solvers, do the following steps:
- Install the optional solver following the vendor instruction.
- Open
Makefile.local
and add the path to the directory where you have installed the solver. For example, for CPLEX you would add this:UNIX_CPLEX_DIR=cplex/install/dir
Build the source code
To build the source code, open a terminal and navigate to the directory where you extracted the files. Then enter the following command to compile OR-Tools:
make python
Test the source code
You can check that everything is running correctly by entering:
make test_python
This runs a selection of examples for OR-Tools. If all the examples run successfully, you are ready to get started with OR-Tools.
Cleaning the build files
If you need to re-install OR-Tools, the command:
make clean_third_party
will remove all compiled dependencies and Makefile.local
. This can be useful
for resetting to a clean state.
Then re-enter the commands
make third_party
make python
Installing OR-Tools on your operating system
You can install OR-Tools for Python on your operating system by entering
make install_python