Build on Linux

This document describes how to build NebulaStream on Linux.

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

⚠️ NebulaStream does not support Ubuntu 18.04 anymore.

Step 1: Install Required Dependencies

On Ubuntu 22.04, you need to run the following commands to install the 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 \
    python3-dev \
    libsodium-dev \
    tar \
    p7zip \
    doxygen \
    graphviz \
    libbsd-dev \
    software-properties-common \
    openjdk-17-jdk \
    ccache \
    opencl-headers \
    ocl-icd-opencl-dev
apt-get clean

On Ubuntu 20.04, you need to run the following commands instead.

Installation of Required Dependencies on Ubuntu 20.04
apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -qq \
  libdwarf-dev \
  libdwarf1 \
  binutils-dev \
  libunwind-dev \
  libdw-dev \
  libssl-dev \
  build-essential \
  clang \
  clang-format \
  libnuma-dev \
  numactl \
  libmbedtls-dev \
  libjemalloc-dev \
  git \
  wget \
  python3 \
  python3-dev \
  libsodium-dev \
  tar \
  python3-pip \
  p7zip \
  doxygen \
  graphviz \
  libbsd-dev \
  software-properties-common \
  openjdk-17-jdk \
  ccache \
  opencl-headers \
  ocl-icd-opencl-dev \
  g++-10 \
  && apt-get clean -qq && pip install lcov_cobertura \
  && update-alternatives --quiet --install /usr/bin/c++ c++ /usr/bin/clang++ 1000 \
  && update-alternatives --quiet --install /usr/bin/cc cc /usr/bin/clang 1000

Step 2: Install CMake (version >= 3.20.0)

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

snap install cmake --classic

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.