asdf
asdf
は、複数のツールのバージョンを管理できるツールです。
指定したバージョンのツールを簡単にインストールできるため、とても便利です。
apt
や brew
などのパッケージマネージャーを使ってツールをインストールすることも可能ですが、asdf
を使うことでバージョンの切り替えが簡単にでき、さらに便利になります。
このページでは asdf
のかんたんな使い方を中心に説明します。
asdf
の説明動画
※ 小さいのでYouTubeを開いて見ることをお勧めします。
※ asdf v0.16.0
から asdf global
と asdf local
は利用できなくなりました。代わりに asdf set
を利用してください。
- グローバル設定(どのディレクトリでも使える)
- ❌
asdf global nodejs 20.10.0
- ⭕️
asdf set --home nodejs 20.10.0
- ❌
- 特定のプロジェクト(ディレクトリ配下) の場合
- ❌
asdf local nodejs 20.10.0
- ⭕️
asdf set nodejs 20.10.0
- ❌
asdf
のインストール
はじめよう | asdf を見ながら asdf
をインストールしてください。
操作の流れ
順番 | 手順 | 対応するコマンド | 説明 |
---|---|---|---|
1 | プラグインの追加 | asdf plugin add <プラグイン名> | ツールに対応するプラグインを追加する (プラグインを追加していない場合のみ) |
2 | ツールのインストール | asdf install <ツール名> <バージョン> | ツールのバージョンを指定してインストールする |
3 | バージョンの指定 | asdf set --home <ツール名> <バージョン> または asdf set <ツール名> <バージョン> | 利用したいバージョンを指定する - オプションなし : カレントディレクトリ- --home : ホームディレクトリ- --parent : 親ディレクトリの .tool-versions |
1. プラグインの追加
asdf は plugin を追加することで、インストールできる対象のツールを増やしていきます。
インストールしたいツールのプラグインは asdf-vm/asdf-plugins で確認できますが、コマンドでも確認できます。
asdf plugin list all
を実行すると追加することができる plugin の一覧が表示されます。
そのため以下のようにするとコマンドのみでインストールしたいツールのプラグインがあるか確認できます。
asdf plugin list all | grep <追加したいツール>
例: kubectl を探す場合
asdf plugin list all | grep kubectl
実行結果
❯ asdf plugin list all | grep kubectl
kubectl *https://github.com/asdf-community/asdf-kubectl.git
kubectl-bindrole https://github.com/looztra/asdf-kubectl-bindrole.git
kubectl-buildkit https://github.com/ezcater/asdf-kubectl-buildkit.git
kubectl-convert https://github.com/iul1an/asdf-kubectl-convert.git
kubectl-kots https://github.com/ganta/asdf-kubectl-kots.git
上記で確認できたので、以下を実行すると kubectl の plugin を追加できます。
asdf plugin add kubectl
2. ツールのインストール
plugin を追加したらツールをインストールできます。 asdf は自分が使いたいバージョンのツールをインストールすることができます。インストール済みのバージョン画複数ある場合、かんたんに切り替えることも可能です。
まずはインストールできるバージョンを確認しましょう。 以下のコマンドでインストール可能なバージョンの一覧が確認できます。
asdf list all <インストールしたいツール>
例: kubectl の場合
asdf list all kubectl
実行結果
❯ asdf list all kubectl
...省略
1.30.0
1.30.1
1.30.2
1.31.0-alpha.0
1.31.0-alpha.1
1.31.0-alpha.2
1.31.0-alpha.3
上記でインストールできるバージョンがわかったらインストールを実行します。
例: kubectl 1.30.0 をインストールする場合
asdf install kubectl 1.30.0
また最新をインストールしたい場合は、 latest
を指定できます。
例: kubectl の最新バージョンをインストールする場合
asdf install kubectl latest
インストールしたものは以下のコマンドで確認できます
例: インストールしたツールをすべて表示
asdf list
実行結果
❯ asdf list
helm
*3.15.4
jmespath
*0.2.1
kubectl
1.26.3
1.27.1
1.29.3
*1.30.0
minikube
1.30.0
1.30.1
*1.33.1
※ *
が付いているバージョンを利用します(変更する際は asdf set --home
か asdf set
を使います)
例: kubectl のインストール済みのバージョンを確認する
asdf list kubectl
実行結果
❯ asdf list kubectl
1.26.3
1.27.1
1.29.3
*1.30.0
3. バージョンの指定
インストール済みのツールのコマンドはインストールしただけでは利用できません。
以下を実行すると指定したバージョンでツールのコマンドを利用できるようになります。
どのディレクトリでも指定バージョンのコマンドを利用できるように設定する
asdf set --home
を使うことで、カレントディレクトリがどこであろうと指定したバージョンのツールのコマンドを利用できるようになります。
asdf set --home <ツール名> <バージョン>
例: kubectl 1.30.0 を使う場合
asdf set --home kubectl 1.30.0
なお、asdf set --home
で設定したツールのバージョン情報は ~/.tool-versions
の中で管理されています。
例: ~/.tool-versions
の中身
❯ cat ~/.tool-versions
kubectl 1.30.0
nodejs 22.5.1
特定のディレクトリ以下で指定バージョンのコマンドを利用できるように設定する
asdf set
を使うことで、特定のディレクトリ以下で作業するときのみツールのバージョンを変更することができます。
asdf set <ツール名> <バージョン>
例: kubectl 1.30.0 を使う場合
asdf set kubectl 1.30.0
asdf set --home
と同様で、バージョン情報は .tool-versions
で管理されます。
しかし、asdf set --home
とは違い asdf set
を実行したディレクトリ直下に .tool-versions
が作成されます。
例: .tool-versions
の中身
❯ cat ./.tool-versions
kubectl 1.30.0
asdf
コマンドの例
kubectl を例にしたコマンドを表にまとめました。以下を参考に、他のコマンドもインストールしてみてください。
プラグイン関係の操作の例
説明 | コマンド |
---|---|
追加可能なプラグイン一覧を表示 | asdf plugin list all |
追加済みのプラグイン一覧を表示 | asdf plugin list |
kubectlのプラグインを追加 | asdf plugin add kubectl |
コマンドのインストールと切り替え関係の操作の例
説明 | コマンド |
---|---|
インストール可能なkubectlの全バージョンを表示 | asdf list all kubectl |
インストール済みのkubectlのバージョンを表示 | asdf list kubectl |
kubectlの最新のバージョンをインストール | asdf install kubectl latest |
kubectlの最新バージョンをグローバルに設定 | asdf set --home kubectl latest |
kubectlの特定のバージョンをインストール | asdf install kubectl 1.30.0 |
kubectlのバージョンをグローバルに設定 | asdf set --home kubectl 1.30.0 |
※ install をしただけではコマンドは利用できません。インストール後に asdf set --home
を実行してください。