📌

CLI バージョン管理ツールの aqua を使うようになって少し経ったので少しまとめておく

2024/05/16に公開
1

tl;dr

  • CLI のバージョン管理に aqua を使うようになってしばらく経つ
  • 公開してないメモが手元にあるので整理したい
  • 使い方とか管理方針とか何のツールを使っているかなどを話せるといいな

links

導入前

環境

  • 家の環境は Windows 11 Home, WSL2 に Ubuntu 20.04(あと24.04)
  • これまでは linuxbrew でだいたいやってた
  • Ubuntu 24.04 に移行しようと思うので、ついでに管理方法を新しくするつもりで aqua を使うことにした次第

削除したもの

aqua 導入前に不要となるツール類を削除した(しなくてもいいけどうまくいってるのか判断しにくいので)

anyenv

  • 元々あんまり使ってなかったので抜くことにした(各言語の管理も別のツールにしようとしている)
  • brew でインストールしていたツールは brew で抜けるが、環境変数を手動で設定したりするので修正するのを忘れないこと
# anyenv commands でコマンドを叩いて env がないことを確認した
brew uninstall anyenv
grep anyenv ~/.bash*

volta

  • 入れ直すので抜くことにした
  • ソースインストールとか他のツールで入っているものはそれぞれ調べて消す
  • volta は少し前に入れていて消し方がわからなかったけど、ディレクトリ丸ごといくとか
# ディレクトリを丸ごと消せばいいらしい
rm -fr ~/.volta
grep volta ~/.bash*

その他 brew でインストールしてあって aqua で入れ直せそうなもの

  • いろいろインストールしたり削除したりしていたので記録があいまい
  • ざっくり抜いて aqua には登録されていないことに気がついて戻したりしたものもある
  • ご利用は計画的にってやつだ

導入

インストール

# aqua
brew install aquaproj/aqua/aqua

### 環境変数を ~/.bash_profile に設定
export AQUA_GLOBAL_CONFIG="$HOME/.config/aqua/aqua.yaml"
export PATH="$(aqua root-dir)/bin:$PATH"

グローバル設定

  • グローバルに管理したいものはグローバルに置けばいい
  • XDG に倣って ~/.config/aqua を作って、aqua.yaml を管理することにした
  • もちろんプロジェクトローカルでバージョンを分けたいものはそのディレクトリに aqua.yaml を置けばいい
  • このディレクトリは後で単一のリポジトリにしようと思っていたけど未処理

alias

  • 最初は a を alias にしたんだけど、そんなにしょっちゅう使うわけではないのでやめた
  • 個人的な命名規則にしたがって aqxx みたいにしている
  • alias に alias を重ねないようにしている
  • 後で見直して意図がわかりやすいようにオプション類は基本的に長い方を使用
alias aq='aqua'
alias aqgi='aqua generate -i -o $AQUA_GLOBAL_CONFIG'
alias aqia='aqua install --all'
alias aqli='aqua list --installed --all | sort'
alias aqup='aqua -c $AQUA_GLOBAL_CONFIG update'

導入後の使い方

alias を書いたので、とくにバージョンを気にせず最新化して使うなら以下の流れでだいたい問題ない。

  1. インストールしたいものがある時に aqgi
  2. しゅっとインストール aqia(個人的には遅延インストールは必要ない)
  3. インストール済のツールをリスト aqli
  4. インストール済のツールをアップデート aqup 個別の時は aq up

引っ掛け

普段どれだけ適当かがバレてしまうので恥ずかしいことこの上ないんだけど、運用していて引っかかったところなどをメモ。

  • 同名の異なるツールにはまる
    • xq という名前のツールがある
    • 欲しかったのは jq, yq と一緒に使う jq ラッパー
    • aqua に登録されているのも brew でインストールできるのも XML パーサで別物
    • 気が付かないで名前だけでインストールして、期待通りに動かなくて困った
  • brew を使うツールが残る(aquaに登録されていない)ので、$PATH の通し順序に気をつける
    • aqua のパスが先になるように登録する
    • brew も aqua も innstall/uninstall した後に以前の情報を読んでしまう?
    • bash -l とかするといい
  • PATH
    • brew や他のツールとの PATH 設定には注意
    • 鶏卵みたいな状態になる→bashの設定ファイルと読み込み順序等を調べ直した
  • バージョンの固定
    • pin みたいなキーワードだと思ってたんだけど
    • version を使うようだ

さいごに

  • 自分用メモを記事に直すの思ったより大変だし面倒
  • 逆に自分用メモを最初から記事向けに分類、整理して書けばいいのでは
  • まだ個別に分けて使っていない(チームには導入していない)ので、もっと習熟したら alias や使い方が変わるかもしれない
  • 管理用のリポジトリを作る(するかどうかも迷ってるけど)
  • バージョン管理ツールの管理やツールの使い分けにも習熟が要るのでエンジニア雑談的なスペースが欲しい
  • ちなみにアイコンを水滴にしなかったのは本家と同じにして邪魔したくなかったからです(あとpin)

Discussion