Package Ecosystems¶
The Flight Env command provides streamlined installation of many popular software management ecosystems. These can be seen below along with the features they provide.
| conda | easybuild | gridware | modules | singularity | spack | |
|---|---|---|---|---|---|---|
| Dependency Management | y |
y |
y |
n |
y |
y |
| Compilation | y |
y |
n |
n |
n |
y |
| Preconfigured Binaries | n |
y |
y |
n |
y |
* |
| Multiple Versions | * |
y |
y |
y |
y |
y |
More information on the features:
- Dependency Management - The ecosystem automatically resolves and installs dependencies
- Compilation - The ecosystem builds software from source for optimised functionality on the system (Note: these sorts of installations will take a long time)
- Preconfigured Binaries - The ecosystem provides binaries of the available software for quicker installation to get applications installed quickly
- Multiple Versions - The ecosystem allows for installation of multiple versions of software which can be toggled between
* is for partial support. Technically these features are supported in certain use cases and with additional work. This is not considered full support as multiple versions may require undocumented or uncommon use-cases of the tool.
Conda¶
Conda is an open source package management system and environment management system that runs on Windows, macOS and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.
Easybuild¶
EasyBuild is a software build and installation framework that allows you to manage (scientific) software on High Performance Computing (HPC) systems in an efficient way.
Gridware¶
Gridware provides pre-compiled binaries for many different scientific computing programs which can be installed quickly and loaded into the environment via modules.
Modules¶
Modules provides simple environment management. Tools and software to be used with modules will be compiled or installed outside of the modules environment.
Singularity¶
Singularity is high-performance container technology specifically designed to enhance Enterprise Performance Computing by building containers that support HPC, analytics, artificial intelligence, machine learning, and deep learning to provide “intelligence anywhere.”