# Install modules with Homebrew, apt, zypper

Dynamic modification of a user's environment via modulefiles. Version 5.6.1 via Homebrew; verified 2026-06-22. Also installable with debian: sudo apt install environment-modules.

## Install

```sh
sudo av install brew:modules
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install modules
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install environment-modules
```

  Evidence: Debian stable package indexes: environment-modules from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- zypper (92%):

```sh
sudo zypper install Modules
```

  Evidence: openSUSE Tumbleweed package metadata: Modules from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:modules
- **Package manager:** Homebrew
- **Version:** 5.6.1
- **Source summary:** Dynamic modification of a user's environment via modulefiles
- **Homepage:** <https://modules.sourceforge.net/>
- **Last updated:** 2026-06-22T14:05:31-07:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- add.modules (alias)
- envml (alias)
- mkroot (alias)
- modulecmd (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 5.6.1
## Project history and usage

Environment Modules began in 1991 with John L. Furlani's paper "Modules: Providing a Flexible User Environment," written at Sun Microsystems to solve a practical Unix administration problem: users and admins needed a cleaner way to add, remove, and switch application-specific environment settings without constantly editing shell startup files. The original design wrapped environment changes into named modulefiles and exposed them through a single module command, so software setup could be loaded, unloaded, or swapped during a shell session.

### Project history

The project moved through several implementations. Project history presented by the Environment Modules maintainers describes versions 1 and 2 under Furlani, version 3.0 under Peter W. Osel and Jens Hamisch, the Linux/GPL 3.1 and 3.2 line under R.K. Owen at NERSC, and the pure Tcl modulecmd.tcl work by Mark Lakata and Kent Mein. Xavier Delaruelle at CEA became project leader in 2017 and led the version 4 and version 5 line based on the Tcl implementation.

### Adoption history

Its role is strongest in high-performance computing and multi-user Unix environments. Modulefiles let sites publish many versions of compilers, MPI stacks, libraries, tools, and data endpoints while users keep a consistent command interface across shells. The project documentation shows typical use through commands such as module load, module switch, and module unload, and the HPSF announcement describes the module command as a familiar interface for supercomputer users accessing a software catalog.

### How it is used

Environment Modules shares its niche with Lmod, the Lua-based module implementation that became especially prominent while Environment Modules development was on hiatus. The revived Tcl-based project added collections, dependency handling, advanced version specifiers, module variants, Lmod Tcl modulefile compatibility, Windows shell support, linting, logging, and cache support. In 2025, Modules moved under the High Performance Software Foundation within the Linux Foundation, giving the long-running HPC environment tool a formal neutral governance home.

### Sources

- <https://envmodules.io/>
- <https://envmodules.io/docs/Modules-Paper.pdf>
- <https://envmodules.io/docs/modules_eum25.pdf>
- <https://github.com/envmodules/modules>
- <https://hpsf.io/blog/2025/high-performance-software-foundation-welcomes-modules-as-hpsf-project/>
- <https://modules.readthedocs.io/en/v5.1.1/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: /etc/environment-modules/initrc, /etc/environment-modules/modulespath, /etc/environment-modules/siteconfig.tcl, /etc/environment-modules/rc, ~/.modulerc, <modulepath>/.modulerc
## Other Package-Manager Records

- Debian apt - environment-modules - 5.5.0-1: normalized package name match | Debian stable package indexes: environment-modules from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Modular system for handling environment variables | http://modules.sourceforge.net/
- Ubuntu apt - environment-modules - 5.4.0-1: normalized package name match | Ubuntu 24.04 LTS package indexes: environment-modules from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Modular system for handling environment variables | http://modules.sourceforge.net/
- zypper - Modules - 4.8.0-4.6: normalized package name match | openSUSE Tumbleweed package metadata: Modules from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Change environment at runtime | http://modules.sourceforge.net/
- zypper - Modules-doc - 4.8.0-4.6: normalized package name match | openSUSE Tumbleweed package metadata: Modules-doc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Documentation for Environment Modules | http://modules.sourceforge.net/


## Combined YAML source

View the package source record on GitHub. [combined/modules.yml](https://github.com/mxcl/pkgdb/blob/main/combined/modules.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated configuration and credential file locations
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
