-
Notifications
You must be signed in to change notification settings - Fork 0
Using EasyBuild
## 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.ebWith supplying an easyconfig file (not recommended, more likely to fail):
$EBHOME/eb --software-name=gzipEasyBuild 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 optionsTo 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 graphThese 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 templateTEMPLATE.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 likepatches).
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: EasyBuild will pick the best matching available easyconfig file: latest version of software/toolkit, etc. It will not choose between multiple available toolkits.
eb --software-name=bzip2 -
Install new software that's unknown: 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)
eb --software-name=unknown-software -r easybuild/easyconfigs