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.