Skip to content

Latest commit

 

History

History
184 lines (127 loc) · 5.47 KB

requirements.rst

File metadata and controls

184 lines (127 loc) · 5.47 KB

Requirements

This page documents the requirements and dependencies needed by Sarus. It serves both as a general reference and as preliminary step to performing installations from source.

The Spack package manager is able to build or retrieve software dependencies on its own: as such, when using Spack, the only requirements to satisfy from this page are those related to the operating system.

Operating System

  • 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

These requirements are tracked by the CI/check_host.sh script.

System packages

The required packages for building Sarus are listed below for a selection of popular Linux distributions. Please note that, depending on the distribution, not all dependencies might be available through the system's package manager, or some dependencies might be provided in versions not supported by Sarus. Please follow the manual installation <requirements-manual-installation> instructions for such dependencies.

OpenSUSE Leap 15.3:

../../CI/installation/install_packages_opensuseleap:15.3.sh

CentOS 7:

../../CI/installation/install_packages_centos:7.sh

Fedora 35:

../../CI/installation/install_packages_fedora:35.sh

Debian 11:

../../CI/installation/install_packages_debian:11.sh

Ubuntu 21.10:

../../CI/installation/install_packages_ubuntu:21.10.sh

Ubuntu 20.04:

../../CI/installation/install_packages_ubuntu:20.04.sh

Manual installation

This section provides instructions to install some notable Sarus dependencies which might not be available through the system's package manager, or might be provided in a version not supported by Sarus.

Boost libraries

Boost libraries are required to be version 1.60.x or later. The recommended version, which is used routinely for build integration and testing, is 1.77.x.

Note

The following instructions will default to /usr/local as the installation prefix. To install to a specific location, use the --prefix option of the b2 builder/installer tool.

../../CI/installation/install_dep_boost.bash

Skopeo

Skopeo is used to acquire images and their metadata from a variety of sources. Versions 1.7.0 or later are recommended for improved performance when pulling or loading images.

Up-to-date instructions about building Skopeo from source are available on the project's GitHub repository.

Umoci

Umoci is used to unpack OCI images' filesystem contents before converting them into the SquashFS format:

../../CI/installation/install_dep_umoci.bash

OCI-compliant runtime

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.3.

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.

Init process

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.

Python packages for integration tests

The following Python 3 packages are required if you are interested to also run the integration tests:

$ pip3 install setuptools
$ pip3 install pytest gcovr pexpect