Open HenrikBengtsson opened 10 months ago
Setting the default version via module_version("foo/1.2.3", default")
should be done in a .modulerc.lua
file located in the foo/
folder, cf. https://lmod.readthedocs.io/en/latest/060_locating.html#marking-a-version-as-default. It does not work in the parent folder.
For example, I've verified that:
$ cat /path/to/openjdk/.modulerc.lua
if os.getenv("_LINUX_DISTRO_") == "centos7" then
module_version("openjdk/11", "default")
end
will make openjdk/11
the default on CentOS 7, but otherwise not.
Hiding a specific versions works by putting a .modulerc.lua
file anywhere in the "module tree", e.g.
$ cat /path/to/CBI/.modulerc.lua
if os.getenv("_LINUX_DISTRO_") == "rocky8" then
hide_version("scl-devtoolset/4")
hide_version("scl-devtoolset/7")
hide_version("scl-devtoolset/8")
hide_version("scl-devtoolset/9")
hide_version("scl-devtoolset/10")
hide_version("scl-devtoolset/11")
end
will hide all scl-devtoolset
versions on Rocky 8. I've verified this.
I've also verified that it does not work to hide all versions at once using, say, hide_version("scl-devtoolset")
, hide_version("scl-devtoolset/")
, or similar.
Use a
MODULERC
file to hide modules, hide specific versions, or set the default version, conditioned on which Linux distribution is used, e.g.centos7
orrocky8
.For example, OpenJDK 17 does not exist on CentOS 7, so there
openjdk/11
should be the default, whereas on Rocky 8,openjdk/17
should be default. So, according to https://lmod.readthedocs.io/en/latest/093_modulerc.html#modulerc-label, I think one can do something like:to make that the default version on CentOS 7 and also hide
openjdk/17
.