module-manager
module-manager deploys versioned Python, Rust, shell, and collective CLI
environments behind GNU environment modulefiles for Linux/HPC systems.
It is designed for administrators who want reproducible command-line tool
installations under a production prefix such as /prod/tools, with matching
modulefiles under a module tree such as /prod/modulefiles.
What It Creates
Each tool version gets its own installation root:
/prod/tools/<name>/<version>/
The executable directory is exposed through the modulefile:
/prod/tools/<name>/<version>/bin
The generated modulefile is written to:
/prod/modulefiles/<name>/<version>
Collective environments use the same layout, but several tools share one
versioned bin directory and one modulefile.
Common Workflow
module-manager deploy-python ruff 0.8.0 \
--package 'ruff==0.8.0' \
--prefix /prod/tools \
--module-root /prod/modulefiles \
--execute-install
module use /prod/modulefiles
module load ruff/0.8.0
ruff --version
Next Steps
- Install prerequisites in Installation.
- Set shared defaults in Configuration.
- Deploy Python packages with Python Tools.
- Deploy Rust binaries with Rust Tools.
- Deploy shell scripts with Shell Scripts.
- Deploy shared tool bundles with Collective Environments.
- Remove deployed versions with Uninstall.