AstonJ

AstonJ

Which Elixir version manager are you using? (Poll)

  • asdf
  • exenv
  • kerl
  • kiex
  • none
  • other
0 voters

asdf

Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more

Manage multiple runtime versions with a single CLI tool, extendable via plugins

asdf-vm is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm , nvm , rbenv & pyenv (and more) all in one! Simply install your language’s plugin!

Why use asdf-vm?

  • single CLI for multiple languages
  • consistent commands to manage all your languages
  • single global config keeping defaults in one place
  • single .tool-versions config file per project
  • support for existing config files .node-version , .nvmrc , .ruby-version for easy migration
  • automatically switches runtime versions as you traverse your directories
  • simple plugin system to add support for your language of choice
  • completion scripts managed by the plugin, not you!

exenv

Groom your app’s Elixir environment with exenv

Based totally on the GREAT rbenv

rbenv’s documentation largely applies here as well

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.

NOTE: Some Erlang source builds are broken. See below

kerl

Easy building and installing of Erlang/OTP instances

Kerl aims to be shell agnostic and its only dependencies, excluding what’s required to actually build Erlang/OTP, are curl and git .

All is done so that, once a specific release has been built, creating a new installation is as fast as possible.

OTP Support Policy

As of 2017 November 8, we are supporting OTP builds back to R15. Older builds may or may not work. We will advance release support as new releases of OTP become available. For example, when OTP 21 is released, we will support Erlang builds R16 and newer.

Most Liked

blatyo

blatyo

Conduit Core Team

I use asdf for everything: elixir, erlang, javascript, yarn, ruby, java, kotlin, rust, terraform

17
Post #3
AstonJ

AstonJ

This thread has reminded me how useful polls are on a forum. Not only can you quickly get a sense of that particular topic by looking at the poll results, but being able to discuss and seek clarification in the thread itself is incredibly useful.

Let’s try something new - whenever we post a poll on an important topic such as this one we’ll also pin it for a week. If that ends up being useful we’ll go through each of our polls on an annual basis and pin them for a week too, perhaps renewing them (with a new thread) every 3 to 5 years (depending whether there are new options available, etc).

hauleth

hauleth

Nix allows me to version way more things than just runtimes/compilers. Additionally this completely prevents me from Erlang/Elixir version mismatch. I use Nix also as my system package manager, so it is like Homebrew and ASDF in one package. Also the idea that I do not need to have packages available globally and instead have them per-environment is very useful.

You can version everything, DB, ElixirLS, Vim, OpenSSL, etc.

No, as Nix is whole functional programming language that is used to define working environment, so this is way harder to grasp and understand, but on the other hand it gives you enormous power as it can be used to:

  • define work environment
  • define CI environment
  • configure deployment builds
  • provide “simple” definition for others to run your application (for example if this is FLOSS or you need non-Elixir people to run it locally because they are for example mobile developers)

The last one is interesting, because imagine that you have your release defined in default.nix in your repo, so the user on the other end can do (IIRC, I am on my phone so it can differ a little):

let
  my_app = fetchFromGit {
    repo = "https://my-repo.url/repo.git"
  };
in mkDerivation {
  buildInputs = [my_app];
}

And they will have access your application via simple my_app start in their shell (if the derivation is properly written). So this provides way more possibilities than ASDF.

Where Next?

Popular in Polls Top

New
thojanssens1
In an attempt to figure out what are the preferred GraphQL clients for Elixir developers, I made this poll below. If you’re using GraphQL...
New
arcanemachine
This was the first question on my mind when I saw this other thread by @AstonJ. I’m curious how many Phoenix users actually like using T...
New
josefrichter
There are two polls and a third question… 1) Displays poll 2) Orientation poll 3) Configuration Please let us know how you are using you...
New
AstonJ
I think I’ve used LittleSnitch since my first ever Mac - does anyone else use it or whatever the equivalent is on your OS? What does it ...
New
germsvel
:wave: hi there! I’m the creator of Testing LiveView. Now that the course is finished, I’m thinking of creating another one. But I’d lik...
New
akoutmos
I was wondering how people are handling run-time configuration of their Plugs in their Phoenix applications as of today: poll I am also ...
New
matt-savvy
Now that the compiler is giving us some reporting about type mismatches, I’m wondering about people’s use of Dialyzer. For anyone on Eli...
New
AstonJ
How often do you buy a new dev machine? poll If there is any particular reason why you’ve settled on the frequency you have, please shar...
New
AstonJ
A terminal multiplexer is a software application that can be used to multiplex several separate pseudoterminal-based login sessions insid...
New

Other popular topics 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...
274 41539 114
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
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 47930 226
New
marick
I had some trouble figuring out how to make many-to-many associations work. Once I got it working, I wrote a blog post. Because I’m a nov...
New
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...
3271 126479 1222
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement