AstonJ
Elixir Version Managers
Edit: Please see this more recent thread:
Forum Poll / 2019
In Ruby we have RVM, Chruby Rbenv etc - what are the Elixir options? Maybe we can compile a list…
ExENV
exenv lets you easily switch between multiple versions of Elixir. It’s simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.
exenv is a Elixir version of rbenv and used denv as a reference. Thanks to @sstephenson and @repeatedly.
KIEX
Kiex allows you to easily build and switch between different Elixir versions.
It supports setting the default (global) Elixir version as well as per shell/project versions.
Everything is self-contained under ~/.kiex.
Usage is based lightly on RVM, kerl, and rbenv.
ASDF
Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
Blog Posts
Changing versions of Elixir and Erlang - 9elements.com
Managing Elixir versions with Kiex - johanwarlander.com
Introducing Asdf: The Extendable Version Manager - stratus3d.com
Integrating direnv with kiex - blog.differentpla.net (by @rlipscombe)
Most Liked
Qqwy
I’d like to say that I have been using asdf to manage all of Erlang, Elixir, Ruby, Haskell, Idris, Rust, Postgres, PHP, Node.js and Crystal without any problems. The problems with installing from git master, tag or commit hash seem to be fixed, as far as I know. (I use the master version of Elixir and the nightly version of Rust, for instance).
The great advantage of asdf is that it handles all the tool-specific version management for you, and you do not have to remember all the different installation procedures for each of them.
I think @NobbZ’ advice thus is outdated now, but of course YMMV ;-).
Qqwy
outlog
article should probably mention installing elixir compiled against the installed otp version eg. something like asdf install elixir 1.5.0-otp-20 - so all features are available - read more here https://github.com/asdf-vm/asdf-elixir#elixir-precompiled-versions
NobbZ
asdf has the big downsite, that it hides the installed system version completely and you can’t use it except by fully qualifying it (might create other problems because system and asdf executables are called in a mix) or kicking asdfs binary wrapper folder out of the $PATH. This makes it totally useless for me. Also it plugins for elixir and erlang don’t hold their promisses. I can’t install from git master, tag or sha, but only official releases while I have to test some of my work against master of both of them.
So I am using kiex (for elixir) and evm (erlang) currently. I don’t know if there is an easier way to do it, but for my personal testing it’s enough to be able to quick compile erlang from source and set $PATH in that shell so that erlang is used directly out of the sourcetree, while I do kiex install master and use that elixir version as necessary.
Especially the erlang workflow isnt optimal so far, but weren’t possible with asdf in general.
gonglexin
I use asdf everyday, it’s simple and great.
.






