EasyBuild is a software build and installation framework written in Python that allows you to install software in a structured, repeatable and robust way.
EasyBuild is motivated by the need for a tool that allows to:
Some key properties of EasyBuild:
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
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.
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:
Installing EasyBuild is really easy: just run
easy_install --user easybuild
easy_install --prefix=/some/dir easybuild
to install the latest available version of all three EasyBuild packages.
You can also download the tarballs for the EasyBuild packages yourself, unpack them and run
python setup.py install --prefix=/some/dir
for each of the packages.
Do make sure you set your PYTHONPATH before performing the installation procedure (if not, easy_install or setup.py will complain).
Do not forget to also update your PATH environment variable, to include "/some/dir/bin" such that the main 'eb' program will be available.
To see EasyBuild in action, install it and build HPL with the robot feature of EasyBuild, by running the following commands:
easy_install --user easybuild export PATH=$PATH:$HOME/.local/bin eb HPL-2.0-goalf-1.1.0-no-OFED.eb --robot
This will install EasyBuild to your home directory ($HOME/.local), update the PATH environment variable such that the 'eb' command is available and subsequently build and install HPL, after building and installing a GCC-based compiler toolchain and all of its dependencies using the default EasyBuild configuration, which will install to $HOME/.local/easybuild/software.
The entire process should take about an hour on a recent system.
Module files will be provided in $HOME/.local/easybuild/modules/all, so to load the provided modules, update your MODULEPATH environment variable.
PYLIB=`python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='/tmp'); "` mkdir -p $PYLIB export PYTHONPATH=$PYLIB:$PYTHONPATH easy_install --prefix=/tmp easybuild export PATH=$PATH:/tmp/bin eb HPL-2.0-goalf-1.1.0-no-OFED.eb --robot
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:
For command line options, see
eb -h (or --help)
See the EasyBuild wiki for documentation on writing your own easyconfig files (.eb).
To add support for particular software that requires a custom installation procedure, you will need to implement an easyblock that can be plugged into the EasyBuild framework (see Development guide).
On the EasyBuild wiki, a step-by-step guide to getting started with EasyBuild is provided.
You can get in contact with the EasyBuild community in different ways:
An EasyBuild mailinglist email@example.com 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.
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
There is an IRC bot present (
easybuilder). Just type !help to get
pointers to the available commands.
The EasyBuild team also has a Twitter feed: @easy_build.
EasyBuild has mainly been tested on RPM-based 64-bit Linux systems, i.e., Scientific Linux 5.x/6.x. Support for other Linux distributions and operating systems is pending.
EasyBuild is developed by the High-Performance Computing team at Ghent University and is made available under the GNU General Public License (GPL) version 2.
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).