- Linux kernel >= 3.0
- util-linux >= 2.20 (these utilities are usually bundled with the Linux distribution itself; v2.20 was released in August 2011)
- The following kernel modules loaded:
- loop
- squashfs
- overlayfs
For Debian-based systems (tested on Debian 10 and Ubuntu 18.04):
../../CI/installation/install_packages_ubuntu:18.04.sh
For CentOS 7:
../../CI/installation/install_packages_centos:7.sh
Python 3 is required if you are interested to also run the integration tests:
# Debian/Ubuntu
$ sudo apt-get install python3 python3-pip python3-setuptools
# CentOS
$ sudo yum install python3 python3-pip python3-setuptools
# All platforms, after installing Python + pip
$ pip3 install setuptools
$ pip3 install pytest gcovr pexpect
Note
If you plan to install Sarus using the Spack package manager, you can skip the rest of this page, since the remaining dependencies will be installed by Spack itself.
- libarchive 3.4.1
- Boost libraries >= 1.60.x (recommended 1.65.x)
- C++ REST SDK v2.10.0
- RapidJSON commit 663f076
Important
We recommend these versions as they are the ones routinely used for build integration and testing, thus guaranteed to work.
As the specific software versions listed above may not be provided by the system package manager, we suggest to install from source:
Note
The following instructions will default to /usr/local
as the installation prefix. To install to a specific location, use the -DCMAKE_INSTALL_PREFIX
CMake options for libarchive and C++ REST SDK and the --prefix
option for the Boost libraries.
../../CI/installation/install_dep_boost.bash
../../CI/installation/install_dep_libarchive.bash
../../CI/installation/install_dep_cpprestsdk.bash
../../CI/installation/install_dep_rapidjson.bash
Note
Should you have trouble pointing to a specific version of Boost when building the C++ REST SDK, use the -DBOOST_ROOT
CMake option with the prefix directory to your Boost installation.
Sarus internally relies on an OCI-compliant runtime to spawn a container.
Here we will provide some indications to install runc, the reference implementation from the Open Container Initiative. The recommended version is v1.0.0-rc10.
The simplest solution is to download a pre-built binary release from the project's GitHub page:
../../CI/installation/install_dep_runc.bash
Alternatively, you can follow the instructions to build from source, which allows more fine-grained control over runc's features, including security options.
Sarus can start an init process within containers in order to reap zombie processes and allow container applications to receive signals.
Here we will provide some indications to install tini, a very lightweight init process which is also used by Docker. The recommended version is v0.19.0.
The simplest solution is to download a pre-built binary release from the project's GitHub page:
../../CI/installation/install_dep_tini.bash
Alternatively, you can follow the instructions to build from source.