EasyBuild

EasyBuild is a software build and installation framework that allows you to manage (scientific) software on High Performance Computing (HPC) systems in an efficient way.

For more details see → EasyBuild documentation

How to Install EasyBuild?

To install EasyBuild named easybuild-l7 in your home directory, run command:

sstack install -n easybuild-l7 -t easybuild

This creates a module file that you can load in your environment to be able to use the stack to install software, as shown in the following:

module use "/home/tahat/sstack/modules"
module load easybuild/easybuild-l7
module use command prepends one or more directories to the MODULEPATH environment variable.

To check if EasyBuild was installed successfully, run command:

eb --version

Output

This is easybuild 4.5.5 (framework: 4.5.5, easyblocks: 4.5.5) on host discovery-l2.

How to Use EasyBuild to Manage Software?

Installing software with EasyBuild is as easy as specifying to the eb command what you want to install. This is typically done by specifying the name of one or more easyconfig files, often combined with the --robot option to let EasyBuild also install missing dependencies.

Syntax

eb <easyconfig file>

To search for an easyconfig file for a specific software, use -S option with the software name, as follows:

eb -S <software-name>

For example, to search for zlib, run:

eb -S zlib

Output

== found valid index for /home/tahat/sstack/stacks/easybuild/easybuild-l7/venv/easybuild/easyconfigs, so using it...
CFGS1=/home/tahat/sstack/stacks/easybuild/easybuild-l7/venv/easybuild/easyconfigs
...
 * $CFGS1/z/zlib/zlib-1.2.11-gimkl-2017a.eb
 * $CFGS1/z/zlib/zlib-1.2.11.eb
 * $CFGS1/z/zlib/zlib-1.2.12-GCCcore-9.5.0.eb
 * $CFGS1/z/zlib/zlib-1.2.12-GCCcore-11.3.0.eb
 * $CFGS1/z/zlib/zlib-1.2.12-GCCcore-12.1.0.eb
 * $CFGS1/z/zlib/zlib-1.2.12.eb
 * $CFGS1/z/zlib/zlib-1.2.12_fix-CC-logic-in-configure.patch
 * $CFGS1/z/zlibbioc/zlibbioc-1.18.0-intel-2016a-R-3.2.3.eb
 * $CFGS1/z/zlibbioc/zlibbioc-1.20.0-intel-2016b-R-3.3.1.eb
 ...

Based on the version that you are looking for, you can select the appropriate easycofig file. To install zlib using zlib-1.2.12.eb easyconfig file, run command:

eb zlib-1.2.12.eb

Output

== Temporary log file in case of crash /tmp/eb-h6w43l45/easybuild-eu89aoam.log
== found valid index for /home/tahat/sstack/stacks/easybuild/easybuild-l7/venv/easybuild/easyconfigs, so using it...
== processing easybuild easyconfig /home/tahat/sstack/stacks/easybuild/easybuild-l7/venv/easybuild/easyconfigs/z/zlib/zlib-1.2.12.eb
== building and installing zlib/1.2.12...
== fetching files...
== ... (took 8 secs)
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== testing...
== installing...
== taking care of extensions...
== restore after iterating...
== postprocessing...
== sanity checking...
== ... (took 1 secs)
== cleaning up...
== creating module...
== ... (took 1 secs)
== permissions...
== packaging...
== COMPLETED: Installation ended successfully (took 12 secs)
== Results of the build can be found in the log file(s) /home/tahat/sstack/stacks/easybuild/easybuild-l7/software/zlib/1.2.12/easybuild/easybuild-zlib-1.2.12-20220624.095717.log
== Build succeeded for 1 out of 1
== Temporary log file(s) /tmp/eb-h6w43l45/easybuild-eu89aoam.log* have been removed.
== Temporary directory /tmp/eb-h6w43l45 has been removed.
use --robot to install all dependencies.

Once the software is installed, a module file is created and it’s path is added to the module path. Now you can load the module to be able to use the software.

module avail

The following output shows that the zlib module is available.

--------------------------------------- /home/tahat/sstack/stacks/easybuild/easybuild-l7/modules/all ----------------------------------------
   zlib/1.2.12 (D)
...

To load the module, run command:

module load zlib/1.2.12

Now you can use the zlib software.

For more tutorials see → EasyBuild documentation