AstonJ

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

Qqwy

TypeCheck Core Team

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

Qqwy

TypeCheck Core Team

@demem123 asdf is easy to install, and also easy to remove or (temporarily) disable. The self-contained nature is the whole selling point of version managers :slight_smile: .

outlog

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

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

gonglexin

I use asdf everyday, it’s simple and great.

Where Next?

Popular in Wikis Top

TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
273 38985 115
New
AstonJ
I’ve noticed we’ve got a few now - wonder if we can compile a list? This is a wiki - anyone at Trust Level 1 can edit :023: Link: This...
New
anildigital
Here is list of plugins for different editors Sublime Text 3 — Elixir.tmbundle - https://github.com/elixir-editors/elixir-tmbundle/#co...
New
axelson
Preamble This Wiki is intended to be a community-maintained (see the Contribution Guidelines if interested) resource of common “gotchas” ...
New
nicbet
Introduction Now that the language is picking up support and maturing nicely, I’d like to start a collection of common and recurring Elix...
New
yurko
Here are few pieces of (common) Linux knowledge that we use for reasonably small one server apps. We use Ubuntu but this should work for ...
New
georgeguimaraes
Hi people, since the new year is coming, I’d like to plan my travels for events in 2017. So, what events (Elixir or FP related) that you...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 45766 226
New
swelham
Introduction After some discussion with a few other members we thought it might be an idea to start a thread where we can post about libr...
New
OvermindDL1
It was stated at https://github.com/elixir-lang/elixir/issues/6172 that Mirrors of the primary Elixir website would be useful since Cloud...
New

Other popular topics Top

Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3268 119930 1237
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
977 41022 311
New
srinivasu
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 record...
New
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New

We're in Beta

About us Mission Statement