Derecho: Group communication at the speed of light

Version 0.9.1

Derecho is a new distributed system out of Cornell University

Ubuntu packages

About the packages

The Derecho project provides experimental .deb files for Derecho itself, all its dependencies, and all the dependencies of the Derecho SOSP demo. You can download the .deb files at files/ubuntu.tar.bz2, or find the source code which built those .deb files in our packaging github repo. If you’re using an Ubuntu from before 18.04 or running Ubuntu via the Windows Subsystem for Linux, your Derecho experience will likely be better via the provided VM.

Downloading the package archive

There are lots of ways to download the Ubuntu archive. My personal favorite is wget:

$ wget https://derecho.cs.cornell.edu/files/ubuntu.tar.bz2
--2019-10-25 19:49:06--  https://derecho.cs.cornell.edu/files/ubuntu.tar.bz2
Resolving derecho.cs.cornell.edu... 128.253.49.36
Connecting to derecho.cs.cornell.edu|128.253.49.36|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 24452372 (23M) [application/x-bzip2]
Saving to: ‘ubuntu.tar.bz2’

ubuntu.tar.bz2  100%[======>]  23.32M   111MB/s    in 0.2s    

2019-10-25 19:49:06 (111 MB/s) - ‘ubuntu.tar.bz2’ saved [24452372/24452372]

Installing the files

First, unpack the downloaded .tar.bz2:

$ tar -xvf ubuntu.tar.bz2

Next, cd into the new ubuntu/ directory:

$ cd ubuntu

In here should be a very large number of .deb files. Running ls should return:

$ ls
demo-dependencies_0.9-1_amd64.deb  mutils-containers_0.9-1_amd64.deb
derecho_0.9-1_amd64.deb            mutils-tasks_0.9-1_amd64.deb
grpc_1.24.2-1_amd64.deb            mxnet_1.5.1-1_amd64.deb
libfabrics_1.7.0-1_amd64.deb       spdlog_1.2.1-1_amd64.deb
mutils_0.9-1_amd64.deb

You should use apt to install each of these files. But first, we’re going to see just what would be installed via apt by running:

$ echo ./* | xargs apt -y install --dry-run

Study the list of packages apt will install, and especially check what apt will remove. If you see nothing clearly amiss, then go ahead and run:

$ echo ./* | xargs sudo apt -y install

This will install every package in the repository, and all of their dependencies. This turns out to be a lot of packages! On a fresh Ubuntu 18.04 install this can be over 300 packages, and takes more than 20 minutes to download and install on a very fast connection—likely much longer over conference wifi!

Once you’re all done, head over to the Tutorial instructions to continue

Installing one at a time

You may also install these packages individually, but bear in mind that some of these packages depend on each other. For example, you cannot install derecho itself without first having installed every mutils package, spdlog, and libfabrics. The best and easiest way to install the packages is to pass them all to apt all at once, and let it sort out the correct installation order.

Conflicts with installed packages

Derecho requires a custom-built version of spdlog and libfabric which conflict with the versions available in Ubuntu. If you have installed libfabric1 or libspdlog-dev on your system, running the apt -y install command above will automatically remove them and replace them with our custom packages. This is sadly an unavoidable part of working with Derecho. The recommended path forward is to note down which packages apt wants to remove which you would prefer to keep, and to remember to apt install them once you’ve finished using Derecho for the day.

Installing in the Windows Subsystem for Linux

Please note that Derecho does not run well under the Windows Subsystem for Linux (1.x) due to networking extensions missing from the Windows-provided Linux Kernel interface. For the same reason, Derecho will likely not run on Kernels older than Linux 3.16. If you do not have an Ubuntu machine matching these specifications, we recommend giving our VM a try instead. That being said, you’re welcome to continue with WSL, and we’ll try to provide support—but if you start seeing crashes accompanied by SETSOCKOPT errors, it might be time to give our VM a try.

Installing in some other Distro

These packages have only been tested in Ubuntu 18.04 and 19.10. You are welcome to install them on any distro, but we cannot guarantee that the dependencies will be installable (or the resulting installation stable) on other distros. To work with Derecho on non-Ubuntu Linux, we recommend building from source. We also do provide ebuilds for Gentoo, which can serve as a template for building on a ports-style (“source-based”) package manager.

Because the Derecho packages are not explicitly versioned in a PPA (or other repository structure), updates to these packages will not automatically be detected by your system package manager. Thus once you’re done using Derecho for a while, we recommend removing the packages you’ve installed here. You can do that with:

$ sudo apt remove demo-dependencies derecho grpc libfabrics mutils mutils-containers mutils-tasks mxnet spdlog

As before, please study the list of packages apt will remove. This will include some surprises! If you don’t like the list that apt is suggesting, then please go ahead and remove them and simply re-install the packages you’d prefer to keep.

Why do it this way?

Once you’ve installed the demo-dependencies package, other packages which depend on libfabric1 will now instead depend on Derecho’s custom libfabrics. When you remove Derecho’s libfabrics, apt isn’t smart enough to automatically re-install the Ubuntu-provided libfabric1. Instead, it will remove everything which depended on libfabrics or libfabric1, and you’ll have to manually re-install them. Sorry!

Running the tutorial

If these instructions have worked for you, then head on over to the Tutorial instructions to continue. If they have not for some reason, you should try the VM

Last updated on 22 Oct 2019
Published on 22 Oct 2019
Edit on GitHub