Erlang Version Management (aka kerl vs evm)

For some reason I don’t remember any more I installed evm a long time ago, but now that we have the first RC of OTP 19, I’m eager to try it out and stumbling over the fact that evm does only support installing official releases of OTP.

Now I did a quick lookup on kerls README and it seems to be possible to install erlang from arbitrary git refs which would enable me to install and keep up to date OTP 19 over the next weeks. But really, there seems to be a lot in the command line interface that seems to be complicated (but gives me freedom) and I don’t know if I want to give away my very simple evm use <version> away for something I haven’t grasped from a first diagonal read.

So which of the given erlang version managers would you suggest to me and why? Maybe you do even know other managers you could suggest in this thread?

This thread is about erlang version managers not elixir, if you are interested in the latter please read Elixir Version Managers.


I would say Kerl because it is actively developed by Mark Allen from Basho (as I type this the last commit was six hours ago), and even though it might have an awkward interface and some concepts one has to grasp it is pretty good.

One thing to notice though, you need to build your Erlang versions with wx enabled if you want to be able to use :observer.start and other tools build with wx. To do this you can add the following to your ~/.kerlrc file:

KERL_CONFIGURE_OPTIONS="--without-javac --with-ssl=/usr/local --with-wx"

edit: please look at this comment for a .kerlrc configuration: Plug POST performance

I have only tested this on OS X though, ymmv.

1 Like

I’m currently building and installing all necessary erlang versions and will try out kerl over the weekend. Also I’ve copied some options from another post made by @josevalim.

1 Like

Interesting. Could you please share these posts by Jose Valim?

1 Like

Of course I can: Plug POST performance

Of course I’ve removed that darwin option, since I don’t use an apple.