Is asdf still the best way of install Elixir and Erlang on Linux?

I would recommend the use of mise even for basic usage.

I only use it to manage OTP, elixir and nodejs; I don’t use any other features.

Which means that I only ever use two commands:

  1. mise install inside a project after .tool-versions has been updated (by a coworker or myself)
  2. mise use <elixir|erlang|nodejs>@<version> to change the default version used system-wide

With asdf, I found that I had trouble remembering how to use it. Plus, having to “manually” install each tool in the right version specified in .tool-versions was cumbersome.

6 Likes

This is very useful as I understand it is easy to install mise and switch between mise and asdf.

No, don’t switch between both. Pick one, stick to it. It would be a waste of energy to use two tools for one purpose.

2 Likes

6 posts were split to a new topic: How to set up dev environment on Linux?

I think Mise is generally recognised as being better than ASDF. There are articles listing all the reasons and I can’t recall them off hand, but I did read them all a while ago and made the switch after. This is all I do when setting up a new machine:

# Install Mise
curl https://mise.run | sh

# Activate Mise to keep the environment variable and `PATH` updated automatically.
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc

# Restart current shell session
exec bash -l

# Install Erlang
mise install erlang@latest && mise use erlang@latest

# Install Elixir
mise install elixir@latest && mise use elixir@latest

# Run Mise Doctor to verfiy no issues
mise doctor

# List installed tools & runtimes
mise ls
4 Likes

Switched from nix-shell + go-task to mise. The UX improvements vastly outweigh the loss in power/flexibility for my/my company’s use cases.

asdf was always pretty meh in my experience, but it still seems like a valid choice if it’s your thing

3 Likes

I have a .tool-versions file. When I set up a new project I type asdf install.
I have a Taskfile.yml for my tasks, and use Task (https://taskfile.dev/) as a task runner.
That’s about it. I’m happy with the setup, I know it, and it works well for me.
Mise seems nice and I would definitely try it if I felt I would benefit from switching tools.

The best tool for you is often the one you know :slight_smile:.
There’s obviously nothing wrong with playing around trying some new tooling though, even if it’s just for fun, and you have the time to spare.