ASDF - Already installed OTP-Elixir-Phoenix

Hello, I have already installed OTP 23 - Elixir 1.9.4 using this metod and Phoenix 1.4.11 and have a project in this versions.

I installed asdf and locally installed Elixir 1.10.13 and planed to install Phoenix 1.5.3 and works great. When i go to the other directory where i have the project in 1.9.4 , its said asdf: No version set for command elixir.

The question is if i install the versions that i need in the directory using asdf is not gonna mess with the project and the other version installed described in the first paragraph? . Thanks.

You need to set the version locally if you don’t have it set globally.

You can run asdf current to see all the current versions of all the tools you installed that are managed by asdf.

Your system-installed versions of Elixir/Erlang are still there, but the way asdf works is by shimming the binaries like mix and elixir and erl, so that it can route to the appropriate versions dictated by .tool-versions files.

if you run which elixir you’ll probably find something like ~/.asdf/shims/elixir
If you run asdf which elixir you’ll probably find your system-installed elixir like /usr/bin/elixir

You can still use system-installed binaries, but you have to tell asdf to use them. You can do this by running asdf shell elixir system.

Personally, if I’m using asdf to manage my Elixir versions, I don’t use any system-installed versions anymore and I uninstall them to prevent confusion. Especially since Elixir needs certain versions of Erlang/OTP to be installed with it. I view asdf as an all-or-nothing tool.


Yes, I’m going to use asdf. Already uninstall elixir system but having trouble uninstalling erlang. I’m on Ubuntu 18.04 LTS , i run:

sudo apt-get purge erlang*

And get:

E: No se ha podido localizar el paquete erlang-solutions_2.0_all.deb
E: No se pudo encontrar ningún paquete usando «*» con «erlang-solutions_2.0_all.deb»
E: No se pudo encontrar ningún paquete con la expresión regular «erlang-solutions_2.0_all.deb»

And running erl and still loading the “iex” for erlang