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 以外の場合は こちら を参照してください。
使い方
プラグイン・ツールのインストール
- 使いたいプログラミング言語・ツールに対応したプラグインを探します
asdf plugin list all
- 使いたいプログラミング言語・ツールに対応したプラグインを追加します
asdf plugin add <name>
asdf plugin add <name> <git-url>
# asdf で管理されていないプラグインの場合
- プラグインが追加されたか確認します
asdf plugin list
- 使いたいプログラミング言語・ツールのバージョンを探します
asdf list-all <name>
- 使いたいプログラミング言語・ツールのバージョンを指定してインストールします
asdf install <name> <version>
- global/local/shell のいずれかでプログラミング言語・ツールのバージョンを設定します
asdf global <name> <version>
- 現在のバージョンを確認します
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