aqua で一定期間使われていないツールをアンインストール
CLI Version Manager の aqua が一定期間使われていないツールの uninstall をサポートしました。
aqua vacuum
というコマンドが追加されました。
aqua vacuum
このコマンドは一定期間使われていないツールを削除します。
デフォルトの期限は 60 日ですが、環境変数 AQUA_VACUUM_DAYS
かコマンドラインオプション -days (-d)
で変更できます。
export AQUA_VACUUM_DAYS=90
aqua vacuum -d 30
パフォーマンス悪化はほぼなし
この機能はツールをインストールまたは実行した際に最終使用日時を更新する必要があります。
aqua を介したツール実行でパフォーマンスが悪化するのは避けなければなりませんが、ベンチマークの結果パフォーマンスの劣化はほぼないことが分かっています。
注意点
aqua v2.42.2 以前を使ってインストールされたツールは最終使用日時の情報を持たないので基本削除されないことに注意が必要です。
aqua v2.43.0 から内部的に各ツールが最後に使用された日時を保持するようになりました。
この日時と現在の日時、そして有効期限を比較して有効期限切れのものを削除します。
この日時はツールをインストールまたは実行した際に更新され、アンインストールした際に削除されます。
つまり aqua v2.43.0 以前のバージョンの aqua を使ってインストールされたツールは最終仕様日時の情報を持たないため、削除ができません。
aqua vacuum --init
はこの問題を緩和します。
aqua vacuum --init
は $AQUA_GLOBAL_CONFIG
を含む aqua.yaml で定義されているツールがインストール済みかチェックし、インストール済みで最終使用日時の情報を持たないツールの最終使用日時を現在日時に設定します。
aqua vacuum --init
ただし aqua vacuum --init
でも aqua.yaml で定義されてないツールの最終使用日時は設定できず、削除対象に含めることができません。
どうしても消したい場合、一度 aqua rm --all
で全部消すしかありません。
aqua を v2.43.0 以上に update したあとに一度全部消して再インストールすればそれ以降はすべてのツールが最終使用日時の情報を持つようになります。
Discussion