[Erlang] Use asdf erlang plugin to install multiple Erlang versions

asdf and Erlang Plugin

asdf is a single CLI tool for managing multiple runtime versions. It extend with a simple plugin system to install your favourite language: Dart, Elixir, Erlang, Flutter, Golang (Go), Java, Node.js, Python, Ruby …

This article is about how to use asdf and Erlang plugin to install multiple Erlang versions on macOS with the Homebrew package manager.

Prerequisites

  • Xcode Command Line Tools
    The Xcode Command Line Tools Package is a small self-contained package available for download separately from Xcode and that allows you to do command line development in macOS which is consists of the macOS SDK and command-line tools such as Clang, which are installed at this

    For more information about installing and using Xcode Command Line Tools, see the Xcode Command Line Tools

  • Homebrew
    Homebrew is the Missing Package Manager for macOS (or Linux).

    For more information about installing and using Homebrew, see the Homebrew - https://brew.sh/.

Installation

Install asdf

1
2
3
4
5
# Install asdf dependencies
$ brew install coreutils curl git

# Install asdf
$ brew install asdf

asdf Erlang Plugin

1
2
3
4
5
# Install Erlang plugin requirements
$ brew install openssl readline

# Install Erlang plugin
$ asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git

List all Erlang Version

Update Erlang plugin.

1
$ asdf plugin update erlang

List all Erlang versions.

1
$ asdf list all erlang

Install Erlang version

Install a Erlang version manually.

1
2
3
4
5
6
7
8
9
10
11
$ asdf install erlang 24.1.4

$ erl -version
No version set for command go
Consider adding one of the following versions in your config file at ~/.tool-versions
erlang 24.1.4

$ echo "erlang 24.1.4" >> ~/.tool-versions

$ asdf exec erl -version
Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 12.1.4

Or install another version.

1
$ asdf install erlang 23.3.4.8

References

[1] Index - Erlang/OTP - https://www.erlang.org/

[2] asdf-vm/asdf-erlang: Erlang plugin for asdf version manager - https://github.com/asdf-vm/asdf-erlang

[3] Manage asdf - https://asdf-vm.com/#/core-manage-asdf

[4] Homebrew - https://brew.sh/