Build From Source

This sections describes how to compile OpenIO SDS from the official source fetched from GitHub.

The build procedure is available for:

  • Ubuntu 16.04

Setup the $SDS variable

Throughout this guide, the environment variable SDS will be used several times. You should ensure this variable is always defined. It should be set to the name of directory where you will be building OpenIO SDS.

export SDS=$HOME/local

Repository Configuration

We provide easy access to build and runtime dependencies versions not available in common distributions.

echo "deb xenial/" | sudo tee /etc/apt/sources.list.d/openio-sds.list
curl | sudo apt-key add -
sudo apt-get -y update

Build Dependencies

Build tools

sudo apt-get -y install git cmake

Build dependencies

sudo apt-get -y install \
    flex bison \
    libcurl4-gnutls-dev \
    libglib2.0-dev \
    libapreq2-dev \
    libsqlite3-dev \
    libjson-c-dev \
    apache2 \
    apache2-dev \
    liblzo2-dev \
    libzmq3-dev \
    libattr1-dev \
    libzookeeper-mt-dev \
    openio-asn1c \
    openio-gridinit \
    liberasurecode-dev \
    python-dev \
    python-pbr \
    python-setuptools \

Fetch Source

Official OpenIO SDS source is available from Github.

git clone -b 3.3.1


We perform build in a separate folder from sources.

mkdir build && cd build
cmake \
    -DLD_LIBDIR=lib \
    -DAPACHE2_MODDIR=${SDS}/lib/apache2 \
    -DAPACHE2_LIBDIR=/usr/lib/apache2 \
    -DAPACHE2_INCDIR=/usr/include/apache2 \


make install
( cd ../oio-sds && python install --user --install-scripts=${SDS}/bin)

Binaries and scripts are installed in $SDS/bin. Libraries are installed in $SDS/lib. Note that for Python, output is in local user installation $HOME/.local/.