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

Reply via email to