Build on Linux

This document describes how to build NebulaStream on Linux.

💡 NebulaStream has been tested on Ubuntu Linux 18.04, 20.04, and 22.04.

Step 1: Install Required Dependencies

apt-get update
DEBIAN_FRONTEND="noninteractive" apt-get install -qq \
  libdwarf-dev \
  libdwarf1 \
  binutils-dev \
  libunwind-dev \
  libdw-dev \
  libssl-dev \
  build-essential \
  clang-format \
  libnuma-dev \
  numactl \
  libmbedtls-dev \
  libjemalloc-dev \
  git \
  wget \
  python3.8 \
  libsodium-dev \
  tar \
  p7zip \
  doxygen \
  graphviz \
  libbsd-dev \
  software-properties-common
apt-get clean

On Ubuntu 18.04, you also have to install GCC 9.

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-9 g++-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9

Step 2: Install CMake (version >= 3.20.0)

On Ubuntu 20.04 and 21.04 CMake can be installed via snap:

snap install cmake

On Ubuntu 18.04, you have to follow the alternative installation instructions below.

Alternatively CMake can be installed via apt
  1. Ensure the following dependencies are installed:
sudo apt-get update
sudo apt-get install gpg wget
  1. Obtain a copy of signing key:
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
  1. Add the repository to sources list and update:
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
sudo apt-get update
  1. Install the kitware-archive-keyring package to ensure that your keyring stays up to date:
sudo rm /usr/share/keyrings/kitware-archive-keyring.gpg
sudo apt-get install kitware-archive-keyring
  1. Install CMake
sudo apt-get install cmake
  1. Check that CMake version is >=3.21
cmake --version

For more details see use the Kitware APT Repository.

Step 3: Clone the NebulaStream Github Repository

💡 Contact us to get access to the NebulaStream source repository on Github.

git clone git@github.com:nebulastream/nebulastream.git

Step 4: Build NebulaStraem

cd /path/to/nebulastream
mkdir -p build
cd build
cmake ..
make -j
make test

💡 Refer to the CMake build options for a description of the parameters to modify the NebulaStream build process.