Dear Sajid,
On 06/11/2019 20:41, Sajid Ali wrote:
Hi easy-builders,
I installed easybuild 4.0.1 by running the bootstrap_eb.py script and
tried to check if it was working by asking it to perform a dry run for
installation of python-3.8. I’m not why it doesn’t recognize the
modules-3.2.10 available on the system.
|[sajid@xrm temp]$ eb --version This is EasyBuild 4.0.1 (framework:
4.0.1, easyblocks: 4.0.1) on host xrm. [sajid@xrm temp]$ eb
Python-3.7.0-foss-2018b.eb -D == temporary log file in case of crash
/tmp/eb-7OETWx/easybuild-S3kK7q.log ERROR: Lmod modules tool can not be
used, 'lmod' command is not available; use --modules-tool to specify a
different modules tool to use (EnvironmentModulesTcl, EnvironmentMo
dulesC, EnvironmentModules, Lmod) [sajid@xrm temp]$ eb --modules-tool
EnvironmentModules ERROR: Failed to parse configuration options:
'Generating Lua module files requires Lmod as modules tool; use
--module-syntax to specify a different module syntax to use (Lua , Tcl)'
[sajid@xrm temp]$ eb --modules-tool EnvironmentModules --module-syntax
Tcl == temporary log file in case of crash
/tmp/eb-gpO28C/easybuild-qz72DR.log ERROR: EnvironmentModules modules
tool can not be used, '/usr/share/Modules/libexec/modulecmd.tcl' command
is not available; use --modules-tool to specify a different modules tool
to use (EnvironmentModulesTcl, EnvironmentModulesC, EnvironmentModules,
Lmod) [sajid@xrm temp]$ |
Looking for installed versions (of required eb dependencies) on the
workstation (running RHEL 7.4) :
|[sajid@xrm temp]$ python -V Python 2.7.5 [sajid@xrm temp]$ type module
module is a function module () { eval `/usr/bin/modulecmd bash $*` }
[sajid@xrm temp]$ type -f module -bash: type: module: not found
[sajid@xrm temp]$ module --version VERSION=3.2.10 DATE=2012-12-21
AUTOLOADPATH=undef BASEPREFIX="/usr/share" BEGINENV=99 CACHE_AVAIL=undef
DEF_COLLATE_BY_NUMBER=undef DOT_EXT="" EVAL_ALIAS=1 HAS_BOURNE_FUNCS=1
HAS_BOURNE_ALIAS=1 HAS_TCLXLIBS=undef HAS_X11LIBS=1 LMSPLIT_SIZE=1000
MODULEPATH="/etc/modulefiles" MODULES_INIT_DIR="/usr/share/Modules/init"
PREFIX="/usr/share/Modules" TCL_VERSION="8.5" TCL_PATCH_LEVEL="8.5.13"
TMP_DIR="/tmp" USE_FREE=undef VERSION_MAGIC=1 VERSIONPATH=undef
WANTS_VERSIONING=0 WITH_DEBUG_INFO=undef [sajid@xrm temp]$ which
modulecmd /bin/modulecmd [sajid@xrm temp]$ module av EasyBuild
---------------------------------------------------------------
/raid/home/sajid/.local/easybuild/modules/all
----------------------------------------------------------------EasyBuild/4.0.1
[sajid@xrm temp]$ which -a eb
~/.local/easybuild/software/EasyBuild/4.0.1/bin/eb [sajid@xrm temp]$ eb
--version This is EasyBuild 4.0.1 (framework: 4.0.1, easyblocks: 4.0.1)
on host xrm. [sajid@xrm temp]$ |
Modules-3.2.10 is present and according to the docs it should work but
it doesn’t . What am i missing ?
To instruct EasyBuild to use Environment Modules 3.2.10 (which is
implemented with a mix of C and Tcl), you should configure EasyBuild to
use 'EnvirontmentModulesC' as modules tool.
The 'EnvironmentModules' value you used is for the modern 4.x versions
of Environment Modules (which is Tcl-only), while the
'EnvironmentModulesTcl' variant is for the ancient Tcl-only version.
So, to configure EasyBuild via environment variables:
export EASYBUILD_MODULES_TOOL=EnvironmentModulesC
export EASYBUILD_MODULE_SYNTAX=Tcl
I just noticed this isn't correctly documented at
https://easybuild.readthedocs.io/en/latest/Configuration.html, I'll get
that fixed...
I’m attaching the logfile from unit testing :
|[sajid@xrm temp]$ export
TEST_EASYBUILD_MODULES_TOOL=EnvironmentModulesC [sajid@xrm temp]$ python
-m test.framework.suite &> test.log |
Here you've correctly instructed the tests to use Environment Modules
3.2.10 using 'EnvironmentModulesC', but you also need to specify that
Tcl should be used as module syntax (the default is Lua, which only
works with Lmod):
export TEST_EASYBUILD_MODULES_TOOL=EnvironmentModulesC
export TEST_EASYBUILD_MODULE_SYNTAX=Tcl
Thanks in advance for the help!
regards,
Kenneth