easybuilders / easybuild-easyblocks

Collection of easyblocks that implement support for building and installing software with EasyBuild.
https://easybuild.io
GNU General Public License v2.0
106 stars 285 forks source link

Minimizing chance of `Conda` easyblock interfering with the rest of the stack #2991

Open ocaisa opened 1 year ago

ocaisa commented 1 year ago

In the Conda easyblock, we are careful not to set LD_LIBRARY_PATH and LIBRARY_PATH (see https://github.com/easybuilders/easybuild-easyblocks/blob/develop/easybuild/easyblocks/generic/conda.py#L100). I'd be concerned though that we may still have potential leakage due to the setting of PKG_CONFIG_PATH.

The other issue is that simply using bin has the potential to impact any other install as it can contain unlimited other things like gcc, python,... I don't see an easy way around this and I think @branfosj had a good idea when he suggested that we make anything with the Conda easyblock conflict with GCCcore (which probably makes the first point moot as well). In addition, I'd suggest that we give the Lmod family attribute conda to the module so that you can't have more than one Conda env loaded at any one time.

ocaisa commented 1 year ago

family is supported in Environment Modules since version v5.1.0 so we could add support in framework for this.

Micket commented 7 months ago

more than one Conda env

by env here you mean environment modules? or actual conda environments? I'm not sure what family could do that can't be achieved with Miniconda and Anaconda conflicting with each other and GCCcore?

ocaisa commented 7 months ago

IIRC this discussion came about because of a PR for a conda-based install of QIIME2. What I meant was using the family feature to ensure you only ever have one module loaded for an environment created by the conda easyblock (the module itself may have any name)