Environment modules allow us to define modular sets of environment variable value that can easily be loaded and unloaded in a given shell. This allows us to provide multiple versions of a single piece of software without awkward re-naming and file tricks.