EasyBuild

EasyBuild: building software with ease.

View the Project on GitHub hpcugent/easybuild

EasyBuild is a software build and installation framework written in Python that allows you to install software in a structured, repeatable and robust way.


Latest news


Introduction

EasyBuild is motivated by the need for a tool that allows to:

Some key properties of EasyBuild:

For a list of supported software packages and more information on EasyBuild, see the EasyBuild wiki on GitHub.

Our PyHPC workshop paper "EasyBuild: Building Software With Ease" that was presented at Supercomputing'2012 is available here (PDF) (slides (PDF) here).
Other (more recent) presentations are available on our wiki, see https://github.com/hpcugent/easybuild/wiki#meetings

Requirements

EasyBuild requires Python 2.4 (or a more recent 2.x version) to be available, as well as the environment-modules software package.

The GitPython Python module is recommended, especially when EasyBuild is being used from a git repository.

See the EasyBuild wiki for more information on EasyBuild dependencies.

Installation

The recommended way of installing EasyBuild is via the provided bootstrap script; this will first install EasyBuild to a temporary location, and then install EasyBuild using EasyBuild.
wget --no-check-certificate https://raw.github.com/hpcugent/easybuild-framework/develop/easybuild/scripts/bootstrap_eb.py
export EASYBUILD_PREFIX=/tmp
python bootstrap_eb.py $EASYBUILD_PREFIX
export MODULEPATH=$EASYBUILD_PREFIX/modules/all:$MODULEPATH
module load EasyBuild
eb --version
More information about installing EasyBuild, together with alternative installation methods, is available on the EasyBuild wiki.

We strongly recommend the bootstrap installation approach. If you run into troubles when trying this, please let us know!

Quick demo for the impatient

To see EasyBuild in action, install it and build HPL with the robot feature of EasyBuild, by running the following commands:


module load EasyBuild
export EASYBUILD_PREFIX=/tmp
export MODULEPATH=$EASYBUILD_PREFIX/modules/all:$MODULEPATH
eb HPL-2.0-goalf-1.1.0-no-OFED.eb --robot

This loads the EasyBuild module such that the 'eb' command is available, and subsequently builds and installs HPL, after building and installing a GCC-based compiler toolchain and all of its dependencies, in the prefix specified to EasyBuild using the $EASYBUILD_PREFIX environment variable that configures the EasyBuild behavior.

The entire process should take about an hour on a recent system.

Module files will be provided in $EASYBUILD_PREFIX/modules/all, so to load the provided modules, update your MODULEPATH environment variable.

Notes:

Quick start

To get started, you first need to configure EasyBuild for use.

Once this is done, using EasyBuild is as simple as creating a .eb specification file, and providing it to the framework:

eb bzip2-1.0.6.eb

For command line options, see

eb -h (or --help)

Documentation

See the EasyBuild wiki for documentation on various topics. including a step-by-step guide to getting started with EasyBuild.

Sources

EasyBuild is split up into three different packages, which are available from the Python Package Index (PyPi):

Next to these packages, a meta-package named easybuild to easily install the full EasyBuild distribution is also available on PyPi.

The source code for these packages is also available on GitHub:

The main EasyBuild repository mainly hosts the the documentation wiki.

Contact info

You can get in contact with the EasyBuild community in different ways:

Mailing list

An EasyBuild mailinglist easybuild@lists.ugent.be is available to subscribe to.

This list is used by both users and developers of EasyBuild, so if you have any questions or suggestions, you can post them there.

Only members can post to this mailinglist. To request membership, see https://lists.ugent.be/wws/info/easybuild.

IRC

An IRC channel #easybuild has been set up on the FreeNode network.

Just connect your IRC client to the chat.freenode.net server, and join the #easybuild channel.

There is an IRC bot present (easybuilder). Just type !help to get pointers to the available commands.

Twitter

The EasyBuild team also has a Twitter feed: @easy_build.

Disclaimer

EasyBuild is intended for use on Linux-based systems (RedHat-based, Debian, SuSE, ...). Limited support for other Unix-based operating systems (e.g. OS X) is also available.

License

EasyBuild is developed by the High-Performance Computing team at Ghent University together with the members of the EasyBuild community, and is made available under the GNU General Public License (GPL) version 2.

Acknowledgements

EasyBuild was created with support of Ghent University, the Flemish Supercomputer Centre (VSC), the Hercules foundation and the Department of Economy, Science and Innovation (EWI).