# Install elixir with Homebrew, apk, chocolatey, apt, dnf, MacPorts, pacman, scoop, zypper

Functional metaprogramming aware language built on Erlang VM. Version 1.20.2 via Homebrew; verified 2026-06-26.

## Install

```sh
sudo av install brew:elixir
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install elixir
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install elixir
```

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

### Linux

- apk (92%):

```sh
sudo apk add elixir
```

  Evidence: Alpine Linux edge package indexes: elixir from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install elixir
```

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

- dnf (92%):

```sh
sudo dnf install elixir
```

  Evidence: Fedora Rawhide package metadata: elixir 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 elixir
```

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

- zypper (92%):

```sh
sudo zypper install elixir
```

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

### Windows

- Chocolatey (92%):

```sh
choco install Elixir
```

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

- Scoop (92%):

```sh
scoop install main/elixir
```

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

## Package facts

- **Package key:** brew:elixir
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/elixir>
- **Version:** 1.20.2
- **Source summary:** Functional metaprogramming aware language built on Erlang VM
- **Homepage:** <https://elixir-lang.org/>
- **Repository:** <https://github.com/elixir-lang/elixir>
- **Upstream docs:** <https://elixir-lang.org/docs.html>
- **License:** Apache-2.0
- **Source archive:** <https://github.com/elixir-lang/elixir/archive/refs/tags/v1.20.2.tar.gz>
- **Last updated:** 2026-06-26T05:56:05Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- elixir (cli)
- elixirc (cli)
- iex (cli)
- mix (cli)
- elixir (alias)
- elixirc (alias)
- iex (alias)
- mix (alias)

## Dependencies

- erlang

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.20.2
- Package-manager updated: 2026-06-26
- Local data: ok
- Upstream repository: https://github.com/elixir-lang/elixir
- Upstream latest detected: v1.20.2 (current)
## Project history and usage

Elixir is a functional, metaprogramming-aware language and toolchain built on the Erlang VM. Its package-manager identity is broader than a compiler: a Homebrew install gives developers the elixir and elixirc commands, the IEx shell, and Mix, the build/test/dependency/release tool that anchors normal Elixir project workflows.

### Project history

Jose Valim created Elixir as a Plataformatec research-and-development project with the goal of making a productive and extensible language for maintainable, reliable software. The official development page emphasizes that Elixir runs on the Erlang VM, using its scalable and fault-tolerant foundation while staying interoperable with the wider Erlang ecosystem.

The pre-1.0 years were strongly shaped by tooling. Elixir v0.6 introduced Mix as a build tool, while v0.13 announced both hex.pm and ElixirConf and framed those as milestones on the road to v1.0. When v1.0 shipped on September 18, 2014, the project reported 8005 commits by 189 contributors and described the release as a stable platform for community growth.

Elixir's later history is a steady expansion of its standard tooling and production story: releases support in v1.9, runtime configuration via config/runtime.exs in v1.11, formatter and developer-experience work, improved compiler diagnostics, language-server work, and, by v1.20 in June 2026, the project described Elixir as a gradually typed language after several years of type-system research and implementation.

### Adoption history

Elixir adoption is tied to developers wanting Erlang VM concurrency and fault tolerance with a more approachable, extensible language and modern tooling. The official blog's production case studies document use across real-time communication, platform-as-a-service, embedded systems, streaming, collaboration, and business applications, with examples including Discord, Heroku, FarmBot, Mozilla, PepsiCo, Remote, Veeps, and Cyanview.

The ecosystem also grew through package and community infrastructure. The v0.13 announcement introduced hex.pm as the package manager and announced ElixirConf, while the v1.0 release explicitly pointed to Hex as the expected home for community projects and reminded users that the Erlang ecosystem was available to Elixir developers.

### How it is used

The core command-line workflow is to create and manage projects with Mix, compile and run code with elixir/elixirc, and use IEx for interactive development. A typical project is described by mix.exs, while application configuration commonly lives in config/config.exs for build-time configuration and config/runtime.exs for runtime configuration.

For package-manager users, Elixir is usually installed as a language runtime plus tools, then paired with Erlang/OTP from the same system package set. Developers use Mix to fetch Hex dependencies, run tests, format code, build releases, and launch project-aware shells with iex -S mix.

### Why package nerds care

Elixir is package-nerd-interesting because it packages a high-level language on top of another runtime, so version compatibility among Elixir, Erlang/OTP, Hex packages, Mix projects, and language-server tools matters. A formula or distro package is not just delivering a compiler; it is delivering the entry point to BEAM-based application builds, dependency resolution, releases, and editor tooling.

It also represents the modern language-runtime packaging pattern where the build tool, test tool, interactive shell, documentation conventions, formatter, dependency manager, and release builder are expected to arrive together. That all-in-one toolchain shape is why small version shifts can matter to CI, developer machines, and release artifacts.

### Timeline

- 2011: Initial commit existed by January 9, according to the v1.0 release post.
- 2012: Elixir was created by Jose Valim as a Plataformatec R&D project.
- 2012: Elixir v0.6 introduced Mix as a build tool.
- 2014: Elixir v0.13 announced hex.pm and ElixirConf on the road to v1.0.
- 2014: Elixir v1.0 shipped on September 18 as the stable 1.x platform.
- 2019: Elixir v1.9 added releases support and improved configuration workflows.
- 2020: Elixir v1.11 introduced config/runtime.exs for unified runtime configuration.
- 2024: Elixir v1.18 added language-server listeners, built-in JSON, and type-checking work.
- 2026: Elixir v1.20 was released and described by the project as making Elixir a gradually typed language.

### Related projects

- Erlang/OTP and the BEAM virtual machine are Elixir's runtime foundation.
- Mix is Elixir's project, build, dependency, test, and release tool.
- Hex is the package manager and package registry used by the Elixir ecosystem.
- IEx, ExUnit, Logger, and EEx are core applications shipped with the language toolchain.
- ElixirLS, Expert, Lexical, and Next LS are related editor-code-intelligence projects in the Elixir tooling ecosystem.

### Sources

- <https://elixir-lang.org/development.html>
- <https://elixir-lang.org/blog/2014/09/18/elixir-v1-0-0-released/>
- <https://elixir-lang.org/blog/2014/04/21/elixir-v0-13-0-released/>
- <https://elixir-lang.org/blog/2013/08/08/elixir-design-goals/>
- <https://elixir-lang.org/blog/2026/06/03/elixir-v1-20-0-released/>
- <https://elixir-lang.org/blog/>
- <https://hexdocs.pm/elixir/main/config-and-releases.html>


## 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: mix.exs, config/config.exs
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** elixir
- **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 - elixir - 1.18.3.dfsg-1: normalized package name match | Debian stable package indexes: elixir from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | functional meta-programming aware language | http://elixir-lang.org/
- Ubuntu apt - elixir - 1.14.0.dfsg-2: normalized package name match | Ubuntu 24.04 LTS package indexes: elixir from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | functional meta-programming aware language | http://elixir-lang.org/
- apk - elixir - 1.19.5-r1: normalized package name match | Alpine Linux edge package indexes: elixir from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Elixir is a dynamic, functional language designed for building scalable and maintainable applications | https://elixir-lang.org/
- apk - elixir-doc - 1.19.5-r1: normalized package name match | Alpine Linux edge package indexes: elixir-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Elixir is a dynamic, functional language designed for building scalable and maintainable applications (documentation) | https://elixir-lang.org/
- dnf - elixir - 1.19.5-4.fc44: normalized package name match | Fedora Rawhide package metadata: elixir from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | A modern approach to programming for the Erlang VM | https://elixir-lang.org/
- dnf - elixir-doc - 1.19.5-4.fc44: normalized package name match | Fedora Rawhide package metadata: elixir-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Documentation for the elixir language and tools | https://elixir-lang.org/
- pacman - elixir - 1.20.0-1: normalized package name match | Arch Linux sync databases: elixir from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | A dynamic, functional language for building scalable and maintainable applications | https://elixir-lang.org
- zypper - elixir - 1.20.0-1.1: normalized package name match | openSUSE Tumbleweed package metadata: elixir from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Functional meta-programming aware language built atop Erlang | https://elixir-lang.org
- zypper - elixir-doc - 1.20.0-1.1: normalized package name match | openSUSE Tumbleweed package metadata: elixir-doc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Documentation for elixir | https://elixir-lang.org
- MacPorts - elixir: normalized package name match | MacPorts ports tree: lang/elixir/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Chocolatey - Elixir: normalized package name match | Chocolatey community package catalog: Elixir from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','electron'
- Scoop - main/elixir: normalized package name match | Scoop official bucket manifest trees: bucket/elixir.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Related links

- [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.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [erlang](https://www.automicvault.com/pkg/brew/erlang/) - Runtime dependency declared by Homebrew.
- [credo](https://www.automicvault.com/pkg/brew/credo/) - Popular package that depends on this formula.
- [ejabberd](https://www.automicvault.com/pkg/brew/ejabberd/) - Popular package that depends on this formula.
- [elixir-ls](https://www.automicvault.com/pkg/brew/elixir-ls/) - Popular package that depends on this formula.
- [agda](https://www.automicvault.com/pkg/brew/agda/) - Shares av.db curated category or tags: cli, functional-programming, language-runtime, programming-language.
- [coconut](https://www.automicvault.com/pkg/brew/coconut/) - Shares av.db curated category or tags: cli, functional-programming, language-runtime, programming-language.
- [elm](https://www.automicvault.com/pkg/brew/elm/) - Shares av.db curated category or tags: cli, functional-programming, language-runtime, programming-language.
- [flix](https://www.automicvault.com/pkg/brew/flix/) - Shares av.db curated category or tags: cli, functional-programming, language-runtime, programming-language.
- [frege](https://www.automicvault.com/pkg/brew/frege/) - Shares av.db curated category or tags: cli, functional-programming, language-runtime, programming-language.
- [idris2](https://www.automicvault.com/pkg/brew/idris2/) - Shares av.db curated category or tags: cli, functional-programming, language-runtime, programming-language.
- [koka](https://www.automicvault.com/pkg/brew/koka/) - Shares av.db curated category or tags: cli, functional-programming, language-runtime, programming-language.
- [lfe](https://www.automicvault.com/pkg/brew/lfe/) - Shares av.db curated category or tags: cli, erlang-vm, language-runtime, programming-language.
- [gleam](https://www.automicvault.com/pkg/brew/gleam/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, erlang, erlang-vm, language, language-runtime.

## Combined YAML source

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


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- 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
