# Install erlang with Homebrew, chocolatey, apt, dnf, MacPorts, pacman, scoop, winget, zypper, Nix

Programming language for highly scalable real-time systems. Version 29.0.3 via Homebrew; verified 2026-07-03.

## Install

```sh
sudo av install brew:erlang
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install erlang
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install erlang
```

  Evidence: MacPorts ports tree: lang/erlang/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Debian apt (92%):

```sh
sudo apt install erlang
```

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

- dnf (92%):

```sh
sudo dnf install erlang
```

  Evidence: Fedora Rawhide package metadata: erlang from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- pacman (92%):

```sh
sudo pacman -S erlang
```

  Evidence: Arch Linux sync databases: erlang from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install erlang
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#typer
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ty/typer/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

### Windows

- Chocolatey (92%):

```sh
choco install erlang
```

  Evidence: Chocolatey community package catalog: erlang from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','electron'

- Scoop (92%):

```sh
scoop install main/erlang
```

  Evidence: Scoop official bucket manifest trees: bucket/erlang.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id Erlang.ErlangOTP -e
```

  Evidence: Windows Package Manager source index: Erlang.ErlangOTP from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:erlang
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/erlang>
- **Version:** 29.0.3
- **Source summary:** Programming language for highly scalable real-time systems
- **Homepage:** <https://www.erlang.org/>
- **Repository:** <https://github.com/erlang/otp>
- **Upstream docs:** <https://www.erlang.org/doc/system/reference_manual.html>
- **License:** Apache-2.0
- **Source archive:** <https://github.com/erlang/otp/releases/download/OTP-29.0.3/otp_src_29.0.3.tar.gz>
- **Last updated:** 2026-07-03T00:34:23Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- ct_run (cli)
- dialyzer (cli)
- epmd (cli)
- erl (cli)
- erlc (cli)
- escript (cli)
- run_erl (cli)
- to_erl (cli)
- typer (cli)
- ct_run (alias)
- dialyzer (alias)
- epmd (alias)
- erl (alias)
- erlc (alias)
- escript (alias)
- run_erl (alias)
- to_erl (alias)
- typer (alias)

## Dependencies

- openssl@3
- unixodbc
- wxwidgets@3.2

## Uses from macOS

- ncurses

## Install behavior

- Post-install hook: not defined
- Caveats: Man pages can be found in: $HOMEBREW_PREFIX/opt/erlang/lib/erlang/man Access them with `erl -man`, or add this directory to MANPATH.
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 29.0.3
- Package-manager updated: 2026-07-03
- Local data: ok
- Upstream repository: https://github.com/erlang/otp
- info: No cached GitHub release or tag data was available.
## Project history and usage

Erlang/OTP is a programming language, runtime system, standard library set, and design-methodology suite for massively scalable soft real-time systems with high-availability requirements. It is one of the canonical BEAM ecosystem packages: installing `erlang` usually means getting the compiler, shell, runtime, OTP applications, and tools such as Dialyzer.

### Project history

Erlang began at Ericsson as a language and runtime for telecom systems, with Joe Armstrong, Robert Virding, and Mike Williams credited by Erlang's official FAQ as the original language designers. The language was shaped around lightweight processes, message passing, fault tolerance, hot code loading, and distribution because telecom switching systems needed long-running services that could be upgraded and recovered without ordinary downtime.

OTP, the Open Telecom Platform, grew around Erlang as the reusable library and design-principles layer. The official Erlang/OTP README describes OTP as the Erlang runtime system plus ready-to-use components and design principles for Erlang programs. In practice, OTP behaviours such as servers, supervisors, and applications are as important to Erlang culture as the syntax of the language itself.

The public GitHub repository was created in 2009, moving the visible development workflow into the same source-control and pull-request culture used by many package ecosystems. The README points users to GitHub issues, contribution docs, official downloads, and source builds, while the install guide documents Unix/Linux and macOS source builds from official tarballs or Git clones.

### Adoption history

Erlang's original adoption base was telecom infrastructure, but its reputation expanded to any domain that values concurrency, fault tolerance, and soft real-time behavior. The official README now describes the language in broad terms rather than telecom-only terms, and package-manager coverage across Homebrew, Debian, Ubuntu, Fedora, Arch, MacPorts, Nix, Chocolatey, Scoop, winget, and zypper reflects that it is treated as a standard language runtime.

The wider BEAM ecosystem increased Erlang/OTP's visibility beyond Erlang-only projects. Elixir runs on the same VM, tools such as ExDoc are used for Erlang documentation builds, and Erlang/OTP remains the base runtime layer for BEAM package managers, releases, and deployment workflows.

### How it is used

Daily use starts with `erl` for the interactive shell, `erlc` for compiling modules, `escript` for script-like command-line programs, and `epmd` for node discovery. The Homebrew formula also exposes tools such as `dialyzer`, `ct_run`, `typer`, `run_erl`, and `to_erl`, which reflects the fact that Erlang/OTP is a full runtime and operations toolkit rather than a single compiler binary.

Developers use Erlang/OTP to build supervision trees, distributed nodes, long-running services, protocol servers, and concurrent applications. Packagers must care about native dependencies such as OpenSSL, ncurses, Java for jinterface, wxWidgets for GUI pieces, and documentation tooling because optional OTP applications are built or skipped depending on what the build environment provides.

### Why package nerds care

Erlang is significant in package-manager culture because it is both a language runtime and a dependency substrate. Installing it unlocks Erlang applications, many Elixir workflows, BEAM tooling, release managers, language servers, and test tools; version selection affects compiled code, NIF compatibility, TLS support, and available OTP applications.

It is also a classic example of a package whose build is simple to type but not trivial to package well. The official install guide documents source tarballs, Git clones, `$ERL_TOP`, Unix/macOS builds, and optional components gated by system libraries. That gives package maintainers real choices about feature coverage, reproducibility, patching, and compatibility with downstream BEAM tooling.

### Timeline

- 1980s: Erlang was developed at Ericsson for telecom-style concurrent, fault-tolerant systems.
- 1990s: OTP grew around Erlang as the reusable runtime, library, and design-principles layer.
- 2009: The public Erlang/OTP GitHub repository was created.
- 2020s: Erlang/OTP is packaged broadly across Unix-like, macOS, Windows, and Nix-style ecosystems.

### Related projects

- Closely related projects include OTP applications, Dialyzer, Common Test, EPMD, Kerl, Elixir, ExDoc, Erlang LS, Erlang Language Platform, and the wider BEAM VM ecosystem.

### Sources

- <https://www.erlang.org/faq/academic>
- <https://github.com/erlang/otp>
- <https://github.com/erlang/otp/blob/master/HOWTO/INSTALL.md>
- <https://api.github.com/repos/erlang/otp>
- <https://www.erlang.org/docs>


## Security Notes

generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- generalized runtime or code generation signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** erlang
- **Aliases:** erlang@29
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - erlang - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Concurrent, real-time, distributed functional language | http://www.erlang.org/
- Debian apt - erlang-asn1 - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-asn1 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP modules for ASN.1 support | http://www.erlang.org/
- Debian apt - erlang-base - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-base from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP virtual machine and base applications | http://www.erlang.org/
- Debian apt - erlang-common-test - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-common-test from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP application for automated testing | http://www.erlang.org/
- Debian apt - erlang-crypto - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-crypto from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP cryptographic modules | http://www.erlang.org/
- Debian apt - erlang-debugger - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-debugger from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP application for debugging and testing | http://www.erlang.org/
- Debian apt - erlang-dev - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP development libraries and headers | http://www.erlang.org/
- Debian apt - erlang-dialyzer - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-dialyzer from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP discrepancy analyzer application | http://www.erlang.org/
- Debian apt - erlang-diameter - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-diameter from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP implementation of RFC 6733 protocol | http://www.erlang.org/
- Debian apt - erlang-doc - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP HTML documentation | http://www.erlang.org/
- Debian apt - erlang-edoc - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-edoc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP module for generating documentation | http://www.erlang.org/
- Debian apt - erlang-eldap - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-eldap from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP LDAP library | http://www.erlang.org/
- Debian apt - erlang-et - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-et from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP event tracer application | http://www.erlang.org/
- Debian apt - erlang-eunit - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-eunit from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP module for unit testing | http://www.erlang.org/
- Debian apt - erlang-examples - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-examples from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP application examples | http://www.erlang.org/
- Debian apt - erlang-ftp - 1:27.3.4.1+dfsg-1+deb13u2: normalized package name match | Debian stable package indexes: erlang-ftp from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Erlang/OTP FTP client | http://www.erlang.org/


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [openssl@3](https://www.automicvault.com/pkg/brew/openssl-3/) - Runtime dependency declared by Homebrew.
- [unixodbc](https://www.automicvault.com/pkg/brew/unixodbc/) - Runtime dependency declared by Homebrew.
- [wxwidgets@3.2](https://www.automicvault.com/pkg/brew/wxwidgets-3-2/) - Runtime dependency declared by Homebrew.
- [ejabberd](https://www.automicvault.com/pkg/brew/ejabberd/) - Popular package that depends on this formula.
- [elixir](https://www.automicvault.com/pkg/brew/elixir/) - Popular package that depends on this formula.
- [elvis](https://www.automicvault.com/pkg/brew/elvis/) - Popular package that depends on this formula.
- [erlang_ls](https://www.automicvault.com/pkg/brew/erlang-ls/) - Popular package that depends on this formula.
- [erlfmt](https://www.automicvault.com/pkg/brew/erlfmt/) - Popular package that depends on this formula.
- [gleam](https://www.automicvault.com/pkg/brew/gleam/) - Popular package that depends on this formula.
- [lfe](https://www.automicvault.com/pkg/brew/lfe/) - Popular package that depends on this formula.
- [proper](https://www.automicvault.com/pkg/brew/proper/) - Popular package that depends on this formula.
- [erlang@26](https://www.automicvault.com/pkg/brew/erlang-26/) - Package name indicates the same formula family.
- [erlang@27](https://www.automicvault.com/pkg/brew/erlang-27/) - Package name indicates the same formula family.
- [erlang@28](https://www.automicvault.com/pkg/brew/erlang-28/) - Package name indicates the same formula family.
- [ocaml](https://www.automicvault.com/pkg/brew/ocaml/) - Shares av.db curated category or tags: cli, functional-programming, language-runtime, programming-language, programming-languages.
- [fantom](https://www.automicvault.com/pkg/brew/fantom/) - Shares av.db curated category or tags: cli, language-runtime, programming-language, programming-languages, runtime.
- [faust](https://www.automicvault.com/pkg/brew/faust/) - Shares av.db curated category or tags: cli, functional-programming, language-runtime, programming-language, programming-languages.
- [futhark](https://www.automicvault.com/pkg/brew/futhark/) - Shares av.db curated category or tags: cli, functional-programming, language-runtime, programming-language, programming-languages.

## Combined YAML source

View the package source record on GitHub. [combined/erlang.yml](https://github.com/automic-vault/db/blob/main/combined/erlang.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
