Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Install Tools and Languages with asdf

ASDF

Intro

Follow ASDF Getting Started first.

Go

Install Go and set it as a default for new shells:

asdf plugin add golang
asdf install golang 1.24.4
asdf set --home golang 1.24.4

asdf install golang latest
asdf set --home golang latest

Node.js

Install Node.js and set it as a default for new shells:

asdf plugin add nodejs
asdf list all nodejs

asdf install nodejs 24.3.0
asdf set --home nodejs 24.3.0

Or, for the latest version:

asdf install nodejs latest
asdf set --home nodejs latest

Deno

asdf plugin add deno
asdf install deno latest

Set as the default version of Deno globally for your user.

asdf set --home deno latest

Or set the default version of deno for the current project only.

asdf set deno latest

Ruby

Install Ruby with asdf on Linux

Unpack the asdf binary into a directory on your path (I use $HOME/bin/).

On Arch Linux, the base-devel package seems to be enough. On Ubuntu, install these:

sudo apt install --yes \
  zlib1g-dev \
  libffi-dev \
  libyaml-dev

Install ruby and set a default one for new shells:

asdf list all ruby
asdf install ruby 3.4.4
asdf set --home ruby 3.4.4

Install ruby with asdf on macOS

brew install asdf
asdf plugin add ruby
asdf list all ruby
asdf install ruby 3.4.4
asdf set --home ruby 3.4.4

If we want to set some other version, like 3.3.3, then remove the 3.4.4 from ~/.tools-versions first.

Haskell & Stack

asdf plugin add haskell
asdf list all haskell
asdf install haskell 9.12.2
asdf set --home haskell 9.12.2

asdf plugin add stack
asdf install stack latest
asdf set --home stack latest

Clojure, clj, lein, clj-kondo

asdf plugin add clojure
asdf list all clojure
asdf install clojure latest
asdf set --home clojure latest

We should now have clj command available.

asdf plugin add leiningen
asdf list all lainingen
asdf install leiningen latest
asdf set --home leiningen latest

We should now have lein command available. Try lein repl.

asdf plugin add clj-kondo
asdf list all clj-kondo
asdf install clj-kondo latest
asdf set --home clj-kondo latest

Install several tools with a loop

Some may have to be compiled and could take several minutes to complete.

for lang in golang \
  nodejs \
  ruby \
  haskell \
  stack
do
  asdf plugin add "$lang"
  asdf install "$lang" latest
  asdf set --home "$lang" latest
done