Configuration Legacy¶
Legacy configuration is currently deprecated!
If you are a new user of EasyBuild you can safely ignore everything below this line, refer instead to Configuring EasyBuild.
Porting from legacy configuration style¶
In EasyBuild v1.x, a couple of configuration options, other than the standard ones aligned with variables, are available that follow the legacy configuration style, including:
- the
-C
and--config
command line arguments ( use--configfiles
instead ) - the
$EASYBUILDCONFIG
environment variable ( use$EASYBUILD_CONFIGFILES
instead ) - the default path
$HOME/.easybuild/config.py
( new-style default path is$XDG_CONFIG_HOME/easybuild/config.cfg
) - the legacy fallback path
<installpath>/easybuild/easybuild_config.py
( only default/fallback path is$XDG_CONFIG_HOME/easybuild/config.cfg
)
Likewise, the following legacy environment variables allowed to override selected configuration settings:
$EASYBUILDBUILDPATH
: build path to be used by EasyBuild ( use$EASYBUILD_BUILDPATH
instead )$EASYBUILDINSTALLPATH
: install path to be used by EasyBuild ( use$EASYBUILD_INSTALLPATH
instead )$EASYBUILDSOURCEPATH
: source path to be used by EasyBuild ( use$EASYBUILD_SOURCEPATH
instead )$EASYBUILDPREFIX
: build/install/source path prefix to be used ( use$EASYBUILD_PREFIX
instead )
We strongly advise to switch to the new way of configuring EasyBuild as soon as possible, since the legacy configuration style will no longer be supported in EasyBuild v2.x.
How EasyBuild used to be configured in the early days¶
Configuring EasyBuild is done by providing a configuration file.
EasyBuild expects the configuration file to contain valid Python code,
because it executes its contents (using exec
). The rationale is that
this approach provides a lot of flexibility for configuring EasyBuild.
EasyBuild will use the file that is provided by the path/filename in the following order of preference:
- path/filename specified on the EasyBuild command line (using
--config
), - path/filename obtained from the environment variable
EASYBUILDCONFIG
(if it is defined) $HOME/.easybuild/config.py
(as of EasyBuild v1.1)- the (default) configuration file at
<path where EasyBuild was installed>/easybuild/easybuild_config.py
Configuration variables¶
The configuration file must define the following five variables:
build_path
, install_path
, source_path
, repository
, and
log_format
. If one of them is not defined, EasyBuild will complain and
exit.
Build path (required)¶
The build_path
variable specifies the directory in which EasyBuild
builds its software packages.
Each software package is (by default) built in a subdirectory of the
build_path
under <name>/<version>/<toolchain><versionsuffix>
.
Note that the build directories are emptied by EasyBuild when the installation is completed (by default).
Install path (required)¶
The install_path
variable specifies the directory in which EasyBuild
installs software packages and the corresponding module files.
The packages themselves are installed under install_path/software
in
their own subdirectory aptly named
<name>/<version>-<toolchain><versionsuffix>
(by default), where name
is the package name. The corresponding module files are installed under
install_path/modules
.
Setting $MODULEPATH
After the configuration, you need to make sure that $MODULEPATH
environment variable is extended with the modules/all
subdirectory of
the install_path
, i.e.:
export MODULEPATH=<install_path>/modules/all:$MODULEPATH
It is probably a good idea to add this to your (favourite) shell .rc
file, e.g., .bashrc
, and/or the .profile
login scripts, so you do
not need to adjust the $MODULEPATH
variable every time you start a new
session.
Source path (required)¶
The source_path
variable specifies the directory in which EasyBuild
looks for software source and install files.
Similarly to the configuration file lookup, EasyBuild looks for the
installation files as given by the sources
variable in the .eb
easyconfig file, in the following order of preference:
<source_path>/<name>
: a subdirectory determined by the name of the software package<source_path>/<letter>/<name>
: in the style of theeasyblocks
/easyconfigs
directories: in a subdirectory determined by the first letter (in lower case) of the software package and by its fullname
<source_path>
: directly in the source path
Note that these locations are also used when EasyBuild looks for patch
files in addition to the various easybuild/easyconfigs
directories
that are listed in the $PYTHONPATH
.