asdfって.tool-versionsがあるディレクトリでasdf install
を実行すると、.tool-versionsに書かれたツールが指定のバージョンでインストールされるんですが、ツールをインストールする前にそのツールをasdf plugin add
しておかいないといけないんですよね。で、このplugin addは自動ではやってくれなくて(知らないだけ?)やり方を色々探したら以下のPRが見つかりました。
install --add
を実装したよっと言ってくれてるのですが結局この変更はマージされないままクローズされてしまいました。途中は全然読んでいないんですが、最後の人がaquaに乗り換えた!っと言ってたいので私もそうしたいと思います。
aqua
CLIツールのバージョンマネージャーです。asdfのようなものですね。Go製です。
インストールは以下を参考にしてください。
使い方
何はともあれ補完が効かないことには作業が捗りません。補完の設定を入れましょう。eval "$(aqua completion ${SHELL##*/}"
を実行します。毎度このコマンドを実行するのは面倒なので、.bashrcや.zshrcに追記しておくのがおすすめです。
aquaはaqua.yamlというファイルでツールとバージョンを管理します。aqua.yamlを作成したいディレクトリでaqua init
を実行します。初期設定はこれだけです。あとは好きなツールを入れていきましょう。
設定ファイルにツール追加する
設定にツールとバージョンを追加するにはaqua generate -i
を使用します。generate
の短いオプションとしてg
というコマンドも用意されているので、今後はこちらを使用していきます。aqua g -i
を実行すると使用可能なパッケージの一覧がインタラクティブに指定できます。もし使用したいパッケージがわかっている場合はaqua g -i <registory-name>/<package-name>
を実行します。もし-i
オプションをつけなければ、aqua.yamlには追加されず標準出力に出力されて終了します。確認だけしたい場合はこれでもいいでしょう。
ツールのバージョンを指定したい場合は-s
オプションを引数に渡します。利用可能なバージョン一覧が出力されるので、そこから使用したバージョンを選択します。
aquaはupdateコマンドを実行するとバージョンを上げる機能があります。しかし、バージョンを固定したいツールもあると思うので、そういうツールを追加する場合は--pin
オプションを渡します。
ここまでをまとめると以下のようなコマンドを実行することで、aqua.yamlに固定バージョンのツールが追加できます。今回はTerrarormを例に実行してみるとこんな感じです。
aqua -g -i -s --pin hashicorp/terraform
ツールをインストール
設定ファイルを作っただけではツールのインストールまではされません。aqua.yamlがあるディレクトリでaqua install
を実行しましょう。
aqua install
でインストールされたツールは$(aqua root-dir)/bin
に追加されます。.bashrcや.zshrcで以下のようにパスを通しておくと便利です。
export PATH="$(aqua root-dir)/bin:$PATH"
もしくはaqua exec -- command
でも実行可能です。
まとめ
簡単に使い方をまとめました。使い方自体が簡単なので細かく説明するより使ってみながら慣れるのがいいと思います。使い方の詳細についてはこちらを参考にしてください。
asdfもいいのですがaquaの方がaqua install
するだけでよくなるので使いやすいかもしれないですね。乗り換えを検討します。