asdf-vm とは
asdf-vm(以下asdf)は、バージョン管理ツールです。
使い方がシンプルで、いろんな言語に使えるため、重宝しています。また、プラグイン作成が簡単なので、普段自分が使用している言語が無いなと思っても、プラグインを作成、バージョン管理ができてしまいます。
公式にはこれらの言語をプラグインとしていますが、プラグイン作成ガイドラインに則ってプラグインを作成することで、自分で作ったプラグインを公式のプラグインとして追加してもらうことも可能です。
個人的にも、負荷試験ツールであるloadimpact/k6のプラグインや、catをシンタックスハイライト出来るようにしたccatのプラグインを作成しています。
How to use asdf-vm
Install asdf-vm
まず、asdf-vm自体の導入です。公式の手順[^1]を参照するのが良いでしょう。
以下は、Bash on macOS
の場合です。
$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.7.3 $ echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bash_profile $ echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bash_profile
Add plugin
ここからは、↑で紹介したloadimpact/k6を例にして紹介します。
loadimpact/k6のプラグインを追加します。
$ asdf plugin-add k6 https://github.com/grimoh/asdf-k6.git
公式のプラグインの場合、インストールもとのURLが不要となります。
Remove plugin
loadimpact/k6のプラグインをアンインストールします。
$ asdf plugin-remove k6
List all available versions
loadimpact/k6のプラグインを使用してインストール可能なバージョンの一覧を表示します。
この中から使用するバージョンを選択し、インストールして使用します。
$ asdf list-all k6
Install version
loadimpact/k6の0.24.0をインストールしてみます。
インストールを行ってもパスが通っているわけでは無いので、使用することはできません。
$ asdf install k6 0.24.0
Uninstall version
loadimpact/k6の0.24.0をアンインストールしてみます。
$ asdf uninstall k6 0.24.0
Set current version
global設定で全環境で使用するバージョンを固定します。
$ asdf global k6 0.24.0
このバージョンの指定を行うことで、使用できるようになります。
local設定で今いるディレクトリ内で使用するバージョンを固定します。
$ asdf local k6 0.24.0
プラグインの作成
プラグインの作成方法についてです。プラグイン作成ガイドライン[^2]を参照するのが良いでしょう。
プラグインは、他の言語やツールのバージョン管理をサポートするための、いくつかの実行可能スクリプトを含むgitリポジトリです。含まれるスクリプトについて簡単に紹介します。
Required scripts
必要なスクリプトとしては以下があります。
- bin/list-all
- インストール可能なすべてのバージョンを一覧表示します
- bin/install
- 指定されたバージョンをインストールします
Optional scripts
任意で追加できるスクリプトとしては以下があります。
- bin/list-bin-path
- 指定されたバージョンのツールの実行可能ファイルを一覧表示します
- bin/exec-env
- パッケージ内のバイナリを実行するようにenvを設定します
- bin/exec-path
- 指定されたバージョンのツールの実行可能パスを取得します
- bin/uninstall
- 特定のバージョンのツールをアンインストールします
- bin/parse-legacy-file
- このプラグイン用の追加の設定ファイルを登録します
まとめ
簡単にですが、asdf-vmの使用方法とプラグインの作成方法について記載してみました。 asdf-vmのプラグインはシェルスクリプトで簡単に作成できるので、作ってみると面白いと思います。 最後まで、ありがとうございました。