Skip to content
boegel edited this page Aug 31, 2012 · 29 revisions

## Basic usage

(note: we will use $EBHOME to indicate the location where EasyBuild was installed)

Using EasyBuild is really easy: just run the eb script and specify which software you want to build.

You can do this either by supplying an easyconfig file (.eb), or only using command line options and hope that EasyBuild is able to figure out or generate a matching build specification.

Recommended basic usage, by supplying an easyconfig file:

$EBHOME/eb example.eb

With supplying an easyconfig file (not recommended, more likely to fail):

$EBHOME/eb --software-name=gzip

EasyBuild will then try to build and install the software following the given specifications.

EasyBuild offers various command line options to access other features, see below.

## `-h`, `--help`: List of available options

To obtain the list of available options, just run the eb script with the -h or --help option, which will provide output as shown below. Running the script without specifying a .eb file will also generate this output.

The usage description at the top specifies build.py because eb is just a wrapper around easybuild/build.py, which updates the PYTHONPATH to ensure that EasyBuild can work as expected.

Usage: build.py [options] easyconfig [..]

Builds software package based on easyconfig (or parse a directory). Provide
one or more easyconfigs or directories, use -h or --help more information.

Options:
  -h, --help            show this help message and exit

  Basic options:
    Basic runtime options for EasyBuild.

    -b BLOCKS, --only-blocks=BLOCKS
                        Only build blocks blk[,blk2]
    -d, --debug         log debug messages
    -f, --force         force to rebuild software even if it's already
                        installed (i.e. can be found as module)
    --job               will submit the build as a job
    -k, --skip          skip existing software (useful for installing
                        additional packages)
    -l                  log to stdout
    -r PATH, --robot=PATH
                        path to search for easyconfigs for missing
                        dependencies
    --regtest           enable regression test mode
    --regtest-online    enable online regression test mode
    -s STOP, --stop=STOP
                        stop the installation after certain step (valid: cfg,
                        source, patch, prepare, configure, make, install,
                        test, postproc, cleanup, packages)
    --strict=STRICT     set strictness level (possible levels: ignore, warn,
                        error)

  Software build options:
    Specify software build options (overrides settings in easyconfig).

    --software-name=NAME
                        build software package with given name
    --software-version=VERSION
                        build software with this particular version
    --toolkit=NAME,VERSION
                        build with specified toolkit (name and version)
    --toolkit-name=NAME
                        build with specified toolkit name
    --toolkit-version=VERSION
                        build with specified toolkit version
    --amend=VAR=VALUE[,VALUE2]
                        specify additional build parameters (can be used
                        multiple times); for example: versionprefix=foo or
                        patches=one.patch,two.patch

  Override options:
    Override default EasyBuild behavior.

    -C CONFIG, --config=CONFIG
                        path to EasyBuild config file [default:
                        $EASYBUILDCONFIG or easybuild/easybuild_config.py]
    -e CLASS, --easyblock=CLASS
                        loads the class from module to process the spec file
                        or dump the options for [default: Application class]
    -p, --pretend       does the build/installation in a test directory
                        located in $HOME/easybuildinstall [default:
                        $EASYBUILDINSTALLDIR or installPath in EasyBuild
                        config file]
    -t, --skip-tests    skip testing

  Informative options:
    Obtain information about EasyBuild.

    -a, --avail-easyconfig-params
                        show available easyconfig parameters
    --dump-classes      show list of available classes
    --search=SEARCH     search for module-files in the robot-directory
    -v, --version       show version
    --dep-graph=depgraph.<ext>
                        create dependency graph
## Basic options

Only build specified blocks: -b/--only-blocks

Log debug messages: -d/--debug

Force rebuild: -f/--force

Submit build as a job: --job

Skip existing software: -k/--skip

Log to standard output: -l

Search path for easyconfig files: -r/--robot

Enable regression test mode: --regtest

Enable online regression test mode: --regtest-online

Stop installation after a certain step: -s/--stop

Set strictness level: --strict

## Software build options

These options can be used to tweak the software that EasyBuild will build and install.

They can be used in two scenarios:

  • without supplying an easyconfig (.eb) file: In this case, EasyBuild will try to find an easyconfig file, taking into account specifications given. If it is unable to find an easyconfig file that matches completely, it will try to generate one, either from an easyconfig file that matches as closely as possible, or from a generic template TEMPLATE.eb (if available).
  • with supplying an easyconfig (.eb) file: If an easyconfig file is supplied, the specified build options override the parameters set in this easyconfig, or update them (in the case of list options like patches).

Specify name of software to build: --software-name

Specify the name of the software to be built.

This is an alternative way of running EasyBuild, without having to supply an easyconfig file.

Using this options also requires specifies a search path for easyconfig files, using -r/--robot.

Note: When using EasyBuild like this, it is more likely to run into a failed build. EasyBuild does what it can to fill in the blanks, but might get this wrong. Something that is fairly likely to fail for example in the sanity check, because by default EasyBuild checks for non-empty bin and lib directories in the installation directory.

Examples:

  • install software for which an easyconfig file is available: eb --software-name=bzip2; EasyBuild will pick the best matching available easyconfig file: latest version of software/toolkit, etc. It will not choose between multiple available toolkits.

  • install new software that's unknown: eb --software-name=unknown-software -r easybuild/easyconfigs; EasyBuild will generate an easyconfig file based on a template (if available), and will try to build the software using that generated easyconfig (although this is likely to fail)

Specify version of software to build: --software-version

Specify the version of the software to be built, for example:

eb --software-name bzip2 --software-version=1.0.4

Specify the toolkit to build with (name and version): --toolkit

Specify name and version of the toolkit to build with.

Syntax: --toolkit=name,version

Example:

eb --software-name=bzip2 --toolkit goalf,1.1.0-no-OFED

Specify name of toolkit to build with: --toolkit-name

Specify the name of the toolkit to build with.

This option is required if EasyBuild is able to find easyconfig files that support building the specified software with multiple toolkits; EasyBuild doesn't pick between multiple available toolkits.

Example:

eb --software-name=bzip2 --toolkit-name=ictce

Specify version of toolkit to build with: --toolkit-version

Specify the version of the toolkit to build with.

If this option is not specified, EasyBuild will pick the last version of the specified or single available toolkit.

Examples:

eb --software-name=bzip2 --toolkit-name goalf --toolkit-version=1.1.0-no-OFED
eb --software-name=bzip2 --toolkit-version=4.0.6 # assumes only a bzip2 easyconfig for ictce is available

Specify additional build parameters: --amend

## Override options

EasyBuild configuration file: -C/--config

Specify easyblock/class to build with: -e/--easyblock

Peform installation in a test directory: -p/-pretend

Skip testing: -t/--skip-tests

## Informative options

Show available easyconfig parameters: -a/--avail-easyconfig-params

Show list of available classes/easyblocks: --dump-classes

Search for module files in robot directory: --search

Show EasyBuild version: -v/--version

Create dependency graph: --dep-graph

Clone this wiki locally