anyenvと各envツールの一括アップデート

現在のプロジェクトでanyenvを使って各言語のバージョンを管理しています。

最近はとあるアプリケーションで使われている言語のバージョンが上がったため、これを期に他の言語のバージョン管理ツールをアップデートしようと思い立ちました。

anyenv-update というプラグインがあり、それをインストールすることで簡単にanyenvと各バージョン管理ツールのアップデートができるようになります。

anyenv-updateのインストール

anyenvの実態があるディレクトリにpluginsという名前のディレクトリを作成し、git cloneします。

mkdir -p $(anyenv root)/plugins
git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update

anyenv-updateの実行

anyenv update を実行すると、下記のように複数のenvツールを一括アップデートしてくれます。

anyenv update

# ↓出力結果

Skipping 'anyenv'; not git repo
Updating 'anyenv/anyenv-update'...
Updating 'goenv'...
 |  From https://github.com/syndbg/goenv
 |  f914e34..a33218b  master     -> origin/master
Skipping 'goenv/go-build'; not git repo
Updating 'nodenv'...
 |  From https://github.com/nodenv/nodenv
 |  2578d8d..96c85a8  master                  -> origin/master
 |  * [new branch]      feature/lts-alias-tests -> origin/feature/lts-alias-tests
Updating 'nodenv/node-build'...
 |  From https://github.com/nodenv/node-build
 |  5c9809ce..4fe8d06f  master     -> origin/master
 |  * [new branch]        lowjs      -> origin/lowjs
 |  * [new branch]        quickjs    -> origin/quickjs
 |  * [new tag]           v4.9.0     -> v4.9.0
 |  * [new tag]           v4.8.1     -> v4.8.1
 |  * [new tag]           v4.8.2     -> v4.8.2
 |  * [new tag]           v4.8.3     -> v4.8.3
Updating 'nodenv/nodenv-default-packages'...
Updating 'nodenv/nodenv-vars'...
Updating 'tfenv'...
 |  From https://github.com/tfutils/tfenv
 |  45a8ad7..4f1ef20  master                  -> origin/master
 |  * [new branch]      list-remote-curl-errors -> origin/list-remote-curl-errors
 |  * [new tag]         v2.0.0                  -> v2.0.0
Updating 'anyenv manifest directory'...

まとめ

これまでバージョン管理ツールを個別にアップデートしていたのですが、まとめてアップデートできるのは非常に便利だなと感じました。

プライベートでもanyenvに移行しようかなと思い始めています。