とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

asdfもいいけどaquaもいいぞ

asdfって.tool-versionsがあるディレクトリでasdf installを実行すると、.tool-versionsに書かれたツールが指定のバージョンでインストールされるんですが、ツールをインストールする前にそのツールをasdf plugin addしておかいないといけないんですよね。で、このplugin addは自動ではやってくれなくて(知らないだけ?)やり方を色々探したら以下のPRが見つかりました。

github.com

install --addを実装したよっと言ってくれてるのですが結局この変更はマージされないままクローズされてしまいました。途中は全然読んでいないんですが、最後の人がaquaに乗り換えた!っと言ってたいので私もそうしたいと思います。

aqua

github.com

CLIツールのバージョンマネージャーです。asdfのようなものですね。Go製です。

インストールは以下を参考にしてください。

aquaproj.github.io

使い方

何はともあれ補完が効かないことには作業が捗りません。補完の設定を入れましょう。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するだけでよくなるので使いやすいかもしれないですね。乗り換えを検討します。