The following is what I use to setup Elixir on my machines, where I want to make sure that I can jump to all definitions of Elixir library functions.
First, I install asdf. I go the Homebrew and Fish route, but you can also do it from the source and use your shell of choice.
Before I install Erlang, I make sure to set the right flags, because I don’t want Java or build any GUI stuff:
KERL_BUILD_DOCS="yes"
KERL_CONFIGURE_OPTIONS="--disable-debug --without-javac --without-wx"
After that, I go to the asdf-erlang repository, check that I have all the build requirements and install Erlang with:
asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
# check available Erlang versions
asdf list all erlang
# install the latest version
asdf install erlang 26.2.4
# enable it globally
asdf global erlang 26.2.4
Now, let’s install Elixir. Go to the asdf-elixir repository, make sure you have unzip installed, and do the following.
asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git
# check all available versions
asdf list all elixir
# install the latest version, but! Install by source, so we can jump to the definition of Elixir functions
asdf install elixir ref:v1.16.2
# enable elixir globally
asdf global elixir ref:v1.16.2
Now, it says it in the comments, but the important difference is that I install Elixir by reference instead of the pre-compiled versions because I also like to be able to jump to definitions of Elixir library functions.