Hello EasyBuilders!

I am trying to configure EasyBuild to allow users to install software locally 
while using the existing cluster-wide stack (distributed via CVMFS) for 
dependencies.
Here is the relevant EB configuration on the clients:

allow-loaded-modules  (F) = EasyBuild
detect-loaded-modules (F) = purge
envvars-user-modules  (F) = USER_STACK_ROOT, HOME
installpath           (F) = /home/hpcadmin/EasyBuild
minimal-toolchains    (F) = True
module-depends-on     (F) = True
module-naming-scheme  (F) = HierarchicalMNS
prefix                (F) = /home/hpcadmin/EasyBuild
robot-paths           (F) = <cvmfs_stack_root>/EasyBuild/custom_easyconfigs, 
<cvmfs_stack_root>/EasyBuild/software/EasyBuild/4.4.0/easybuild/easyconfigs
rpath                 (F) = True
subdir-user-modules   (F) = EasyBuild/modules

The cluster-wide stack root path is indicated above as: cvmfs_stack_root

When a user wants to build and locally install a piece of software and the 
toolchain is already available in the cluster-wide stack, the expectation is 
that EB pulls the existing dependencies from the stack and only builds/installs 
locally the missing dependencies and finally the desired software. The 
generated local module will then appear in Lmod thanks to the 
subdir-user-modules option.

When EasyBuild tries to resolve the dependencies, it pulls the list of 
installed modules from:

  *   the paths in MODULEPATH
  *   the <installpath>/<subdir_modules> as specified in the EB configuration

In my case this correspond to the following paths:

  *   <cvmfs_stack_root>/EasyBuild/modules/all/Core
  *   /home/hpcadmin/EasyBuild/modules/all

The problem with this is that EB only considers stack modules in the Core 
directory and not on the rest of the hierarchical tree (Compiler, MPI), causing 
the entire toolchain to be re-built locally.
The solution would be to add <cvmfs_stack_root>/EasyBuild/modules/all to 
MODULEPATH at build time.

What am I missing?

Davide

Reply via email to