Open15

読者コミュニティ|aqua CLI Version Manager 入門

sogaohsogaoh

使い始めてみた者です。
aqua i を実行して以下のようなコンソール出力が出ていたのですがバージョンを確認してみてもインストールされていなくて、何が足りないかわかりますでしょうか。

aqua i 実行時のコンソール出力

❯ aqua i
INFO[0000] download and unarchive the package            aqua_version=2.16.3 env=darwin/arm64 package_name=aqua-proxy package_version=v1.2.4 program=aqua registry=
INFO[0001] create a symbolic link                        aqua_version=2.16.3 command=aqua-proxy env=darwin/arm64 package_name=aqua-proxy package_version=v1.2.4 program=aqua registry=
INFO[0001] create a symbolic link                        aqua_version=2.16.3 command=ghq env=darwin/arm64 program=aqua
INFO[0001] create a symbolic link                        aqua_version=2.16.3 command=peco env=darwin/arm64 program=aqua
INFO[0001] create a symbolic link                        aqua_version=2.16.3 command=terraformer env=darwin/arm64 program=aqua
INFO[0001] create a symbolic link                        aqua_version=2.16.3 command=ov env=darwin/arm64 program=aqua
INFO[0001] create a symbolic link                        aqua_version=2.16.3 command=trdsql env=darwin/arm64 program=aqua
INFO[0001] download and unarchive the package            aqua_version=2.16.3 env=darwin/arm64 package_name=noborus/trdsql package_version=v0.12.1 program=aqua registry=standard
INFO[0001] download and unarchive the package            aqua_version=2.16.3 env=darwin/arm64 package_name=peco/peco package_version=v0.5.11 program=aqua registry=standard
INFO[0001] download and unarchive the package            aqua_version=2.16.3 env=darwin/arm64 package_name=GoogleCloudPlatform/terraformer package_version=0.8.24 program=aqua registry=standard
INFO[0001] download and unarchive the package            aqua_version=2.16.3 env=darwin/arm64 package_name=x-motemen/ghq package_version=v1.4.2 program=aqua registry=standard
INFO[0001] download and unarchive the package            aqua_version=2.16.3 env=darwin/arm64 package_name=noborus/ov package_version=v0.32.1 program=aqua registry=standard

~/temp/m2-provisioner cli* 47s

❯ which ghq
ghq not found
rakiraki

aqua g -i -a したい

https://aquaproj.github.io/docs/tutorial/global-config/

を読んで global に(~/.dotfiles/aqua/)に aqua.yaml を使って、どのディレクトリでも使えるようにはなりました。

新規にツールをインストールしようと考えた時、ツールが対象になっているかを調べる、書き方を出力する、ファイルに落とす、という段階を踏んでいるのですが、これを現在のディレクトリから動かずに一発で実行する方法が欲しいと思いました(aqua g -i -a

aqua g -i -o $AQUA_GLOBAL_CONFIG でいける、とこまでは確認しているんですけど、ぶっちゃけ面倒だなって思っていて、g のオプションに -a が付けられたらなって思った次第です。
書いてて思ったけど alias 貼れば別に面倒でもないしいいかってなりました。
改善の際に余裕があればということで。。。

Shunsuke SuzukiShunsuke Suzuki

フィードバックありがとうございます。
確かにあると便利そうですね。
検討します。

rakiraki

バグ?かもしれない

グローバルな aqua.yaml のあるディレクトリで aqua list --installed だと2回、 aqua list --installed -a だと3回出力されるようです。

aqua $ aqua list --installed -a | sort
99designs/aws-vault     v7.2.0  standard
99designs/aws-vault     v7.2.0  standard
99designs/aws-vault     v7.2.0  standard
ahmetb/kubectx/kubens   v0.9.5  standard
ahmetb/kubectx/kubens   v0.9.5  standard
ahmetb/kubectx/kubens   v0.9.5  standard
ahmetb/kubectx  v0.9.5  standard
ahmetb/kubectx  v0.9.5  standard
ahmetb/kubectx  v0.9.5  standard
aws/aws-cli     2.15.32 standard
aws/aws-cli     2.15.32 standard
aws/aws-cli     2.15.32 standard
charmbracelet/glow      v1.5.1  standard
charmbracelet/glow      v1.5.1  standard
charmbracelet/glow      v1.5.1  standard
cli/cli v2.46.0 standard
cli/cli v2.46.0 standard
cli/cli v2.46.0 standard
Shunsuke SuzukiShunsuke Suzuki

同じ設定ファイルを複数回参照する場合があるバグがあったので修正します。

近日中に修正されるかと思います。

ただし、同じパッケージが複数回出力されるのは必ずしもバグではありません。
異なる設定ファイルで同じパッケージが参照されていたり、同じパッケージが同じ設定ファイルで複数参照されている場合は、同じパッケージが複数回出力されるからです。これは現状仕様です。

rakiraki
aqua $ aqua --version
aqua version 2.25.2 (fee65b11d2fdcd4028502436093aaeeea6998581)
aqua $ aqua list --installed -a | sort     
99designs/aws-vault     v7.2.0  standard
ahmetb/kubectx/kubens   v0.9.5  standard
ahmetb/kubectx  v0.9.5  standard
astral-sh/rye   0.31.0  standard
aws/aws-cli     2.15.32 standard
<ommit>

修正されているのを確認しました。

sogaohsogaoh

[済] バージョンが aqua.yaml に 記述されている通りにならない場合がある -> philosophy トノコト。

然程実害ないのですが(terragrunt は普通に使えている)、やや謎なので解決策があれば教えていただきたいです。
tgenv が、aqua.yaml には 1.2.1 って表示されているんですが、 tgenv --version すると 0.2.0 と出ます
これは・・・何が正しいのでしょうか・・・(うまく言えない・・・)

スクリーンショット

rakiraki

コードの読み方が間違ってなかったらこれが tgenv の --version オプションのコードで
https://github.com/tgenv/tgenv/blob/v1.2.1/libexec/tgenv---version
書いてあるのを素直に読むとここから一番上のヘッダを引っ張ってるように見える
https://github.com/tgenv/tgenv/blob/v1.2.1/CHANGELOG.md
ので、aqua の問題じゃなくて、そもそも tgenv の話みたい。で、
https://github.com/tgenv/tgenv/issues/34
ってことなので、これはこれであってるみたいです。

issue は違うや。別の話だった。
どのみち tgenv のバージョンは CHANGELOG から出力されていて、tgenv v1 系は全部 0.2.0 って出力されるのは変わらないみたい。。。

sogaohsogaoh

なるほど、philosophy なんですねー
完全に腹落ちしました。ありがとうございましたー

Shunsuke SuzukiShunsuke Suzuki

aqua を介さずにツールを実行してみることで、 aqua が原因か否か問題を切り分けることができます。
aqua which <コマンド名> でコマンドのインストール先を取得することができます。

root@421c4fac4277:~/workspace# aqua which tgenv
/root/.local/share/aquaproj-aqua/pkgs/github_archive/github.com/tgenv/tgenv/v1.2.1/tgenv-1.2.1/bin/tgenv

そこでそのパスを直接指定してコマンドを実行して問題が再現するのであれば aqua の問題ではない、再現しなければ aqua が何かしら関係している可能性が高いということが分かるかと思います。

root@421c4fac4277:~/workspace# /root/.local/share/aquaproj-aqua/pkgs/github_archive/github.com/tgenv/tgenv/v1.2.1/tgenv-1.2.1/bin/tgenv -v
tgenv 0.2.0

# あるいは "$(aqua which tgenv)" -v でも良い
root@421c4fac4277:~/workspace# "$(aqua which tgenv)" -v
tgenv 0.2.0