マルチランタイムバージョン管理ツールasdf

2022-06-15

asdfはプログラミング言語やCLIのマルチランタイムバージョン管理ツールです。
この記事では、インストールから使い方の概要までをご紹介します。

環境構築

インストール

$ brew install coreutils curl git
$ brew install asdf
$ echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ~/.bash_profile
$ exec $SHELL -l

上記は .bash_profile に設定を追記していますが、 お使いの環境・好みに応じて .zshrc などへの追記つ読み替えてください。
環境により差分があるので、基本は brew install asdf 実行後の Homebrew の指示に従ってください。
Homebrew 以外の場合は こちら を参照ください。

アップデート

$ brew upgrade asdf

Homebrew 以外の場合は こちら を参照してください。
また、 Homebrew で asdf をアップデートした際に no such file or directory といったエラーが発生する場合、 環境変数 ASDF_DIR に旧バージョンの情報が含まれる可能性があるため、以下のコマンドを試してみてください。

$ export ASDF_DIR=
$ exec $SHELL -l

さらに、$HOME/.asdf/shim ディレクトリ内のスクリプトに記述された asdf のパスが古いバージョンのままになっていることもあります。
この場合は、 $HOME/.asdf/shim ディレクトリを別のディレクトリに移動後( mv $HOME/.asdf/shim $HOME/.asdf/shim_bk など)、 asdf reshim を実行することで $HOME/.asdf/shim ディレクトリ内のスクリプトを再生成することができるようです。( 参考

アンインストール

.bash_profile などインストール時に設定したファイルから以下の行を削除します。

. $(brew --prefix asdf)/libexec/asdf.sh
. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash

上記実施後に以下のコマンドなどで該当ディレクトリを削除します。

$ brew uninstall asdf --force
$ rm -rf $HOME/.tool-versions $HOME/.asdf

Homebrew 以外の場合は こちら を参照してください。

使い方

プラグイン・ツールのインストール

  1. 使いたいプログラミング言語・ツールに対応したプラグインを探します
    • asdf plugin list all
  2. 使いたいプログラミング言語・ツールに対応したプラグインを追加します
    • asdf plugin add <name>
    • asdf plugin add <name> <git-url> # asdf で管理されていないプラグインの場合
  3. プラグインが追加されたか確認します
    • asdf plugin list
  4. 使いたいプログラミング言語・ツールのバージョンを探します
    • asdf list-all <name>
  5. 使いたいプログラミング言語・ツールのバージョンを指定してインストールします
    • asdf install <name> <version>
  6. global/local/shell のいずれかでプログラミング言語・ツールのバージョンを設定します
    • asdf global <name> <version>
  7. 現在のバージョンを確認します
    • asdf current
    • asdf current <name>

例として helm で一連の流れを紹介します。

$ asdf plugin list all | grep helm
helm                          https://github.com/Antiarchitect/asdf-helm.git
helm-cr                       https://github.com/Antiarchitect/asdf-helm-cr.git
helm-ct                       https://github.com/tablexi/asdf-helm-ct.git
helm-docs                     https://github.com/sudermanjr/asdf-helm-docs.git
helmfile                      https://github.com/feniix/asdf-helmfile.git

$ asdf plugin add helm

$ asdf plugin list
helm

$ asdf list-all helm
3.4.1

$ asdf install helm 3.4.1

$ asdf global helm 3.4.1

$ asdf current helm
helm            3.4.1           /Users/xxxx/.tool-versions

$ helm version
version.BuildInfo{Version:"v3.4.1", GitCommit:"c4e74854886b2efe3321e185578e6db9be0a6e29", GitTreeState:"clean", GoVersion:"go1.14.11"}

プラグインのアップデート

$ asdf plugin update --all

ツールのアンインストール

$ asdf uninstall <name> <version>

プラグインのアンインストール

$ asdf plugin remove <name>

困ったときは

$ asdf help

おすすめ記事