A Python facade to manage an EasyBuild installation. It's main feature is the installation of a list of packages defined in a config file, with correspond uninstallation of unused modules.
All configuration is stored in modules.toml
.
Here is an example configuration (please adapt to your environment):
[options]
installpath = "/.../modules"
easybuild_args = [
"--robot",
"--download-timeout=60",
"--buildpath=/tmp/.../easybuild",
"--robot-paths=/.../myeasybuild/user_modules:/.../myeasybuild/easybuild-easyconfigs/easybuild/easyconfigs",
"--accept-eula-for=CUDA",
]
[modules]
modules = [
"CUDA-12.6.0.eb",
]
This project uses uv for dependency management. After installation of uv, you should initialize submodules:
git submodule update --init --recursive
Then, you can create / edit modules.toml
.
After each change, you should run
module purge
uv run python modules.py
to update your installation. Note that it is important to not have any modules loaded before the execution of EasyBuild.