System requirements

Ouroboros builds on most POSIX compliant systems. Below you will find instructions for GNU/Linux, FreeBSD and OS X. On Windows 10, you can build Ouroboros using the Linux Subsystem for Windows.

You need git to clone the repository. To build Ouroboros, you need cmake, google protocol buffers installed in addition to a C compiler (gcc or clang) and make.

Optionally, you can also install libgcrypt, libssl, fuse, dnsutils and swig.

On GNU/Linux you will need either libgcrypt (≥ 1.7.0) or libssl if your glibc is older than version 2.25.

On OS X, you will need homebrew. Disable System Integrity Protection during the installation and removal of Ouroboros.

Install the dependencies

Debian/Ubuntu Linux:

$ apt-get install git protobuf-c-compiler cmake
$ apt-get install libgcrypt20-dev libssl-dev libfuse-dev dnsutils swig cmake-curses-gui

Arch Linux:

$ pacman -S git protobuf-c cmake
$ pacman -S libgcrypt openssl fuse dnsutils swig

FreeBSD 11:

$ pkg install git protobuf-c cmake
$ pkg install libgcrypt openssl fusefs-libs bind-tools swig

Mac OS X Sierra / High Sierra:

$ brew install git protobuf-c cmake
$ brew install libgcrypt openssl swig


For ArchLinux users, the easiest way to try Ouroboros is via the Arch User Repository.

Build from source

You can clone the repository over http or https or git:

$ git clone http://ouroboros.ilabt.imec.be/git/ouroboros
$ git clone https://ouroboros.ilabt.imec.be/git/ouroboros
$ git clone git://ouroboros.ilabt.imec.be/ouroboros

If you update your repository, make sure to retrieve the tags from the repository before building (they are used for versioning):

$ git fetch <remote> --tags

To be sure your tags are always up to date, you can configure git to always get them:

$ git config remote.origin.tagopt --tags

Be sure to re-run cmake or run ccmake to update the configuration so the correct version is set after a new tag is pulled.

Quick Install

We recommend creating a build directory:

$ mkdir build && cd build

Run cmake providing the path to where you cloned the Ouroboros repository. Assuming you created the build directory inside the repository directory, do:

$ cmake ..

Build and install Ouroboros:

$ sudo make install

Advanced options

Ouroboros can be configured by providing parameters to the cmake command:

$ cmake -D<option>=<value> ..

Alternatively, after running cmake and before installation, run ccmake to configure Ouroboros:

$ ccmake .

For a list of all options, see the documentation.

Remove Ouroboros

To uninstall Ouroboros, simply execute the following command from your build directory:

$ sudo make uninstall